设计网站开发方案流程,为wordpress配置邮箱服务,互联网企业有哪些行业,施工企业部门目标责任书环境#xff1a;nacos1.3.0
一、服务注册
1、pom#xff1a;
移步spring官网https://spring.io#xff0c;查看集成Nacos所需依赖 找到对应版本点击进入查看集成说明 然后再里面找到集成配置样例#xff0c;这里只截一张#xff0c;其他集成内容继续向下找 我的#x…环境nacos1.3.0
一、服务注册
1、pom
移步spring官网https://spring.io查看集成Nacos所需依赖 找到对应版本点击进入查看集成说明 然后再里面找到集成配置样例这里只截一张其他集成内容继续向下找 我的
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.demo.nacos/groupIdartifactIdnacos-service/artifactIdversion1.0-SNAPSHOT/version!-- springBoot --parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.0.4.RELEASE/version/parentpropertiesjava.version1.8/java.versionmaven.compiler.plugin.version3.7.0/maven.compiler.plugin.versionmaven.source.plugin3.0.1/maven.source.pluginproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependency!--nocas必须在web环境下--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- SpringCloud --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversionFinchley.RELEASE/version/dependency!-- SpringCloud Alibaba --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion2.1.0.RELEASE/version/dependency!--服务注册--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdversion0.2.2.RELEASE/version/dependency!-- nacos 注册中心客户端 --
!-- dependency--
!-- groupIdcom.alibaba.cloud/groupId--
!-- artifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId--
!-- version2.1.0.RELEASE/version--
!-- /dependency--/dependenciesbuildfinalNamemy-service/finalNamepluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build
/project
我这里注册到nacos使用 com.alibaba.cloud会报错读取不到bootstrap使用org.springframework.cloud就可以暂未解决。
2、配置文件
1bootstrap
bootstrap是springcloud衍生来的推荐使用bootstrap。一般来说是把application内容放到nacos配置中心配置本地只用bootstrap连接到nacos而不用application配置。bootstrap优先于application执行。如果把nacos的配置放到application中去连接那么远程nacos上的配置可能就读取不到了。
spring:application:name: my-servicecloud:compatibility-verifier:enabled: falsenacos:#服务注册discovery:server-addr: xx.xx.xxx:8848server:port: 8899servlet:context-path: /myProvider2application
有认为nacos配置中心配置内容必须写在bootstrap.yml文件中如果写入application-*.yml或者application.yml中均不生效。其实使用application.properties也可以完成配置。我的
spring.cloud.nacos.discovery.server-addrxx.xx.xxx:8848
server.port8877
server.servlet.context-path/myProvider
spring.application.namemy-service
3、启动类
import com.alibaba.nacos.api.config.annotation.NacosConfigurationProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;SpringBootApplication
EnableDiscoveryClient
public class NacosServierStart {public static void main(String args[]){SpringApplication.run(NacosServierStart.class,args);}
}
5、测试
启动 查看nacos也成功的注册了 二、集中配置
获取集中配置第一步需要注册到nacos所以建立在上面的基础上
1、参数说明
1.1、dataId
相当于nacos集中配置的文件名。在 Nacos Spring Cloud 中DataId 的完整格式如下
${prefix}-${spring.profiles.active}.${file-extension} 1prefix 默认为 spring.application.name 的值也可以通过配置项 spring.cloud.nacos.config.prefix来配置。 2spring.profiles.active 即为当前环境对应的 profile 注意当 spring.profiles.active 为空时对应的连接符 - 也将不存在 dataId 的拼接格式变成 p r e f i x . {prefix}.prefix.{file-extension}。如
my-service-dev.properties
my-service-prod.properties
3file-exetension 为配置内容的数据格式可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。如my-service.properties。
1.2、Group
组相当于一个特定场景组默认是DEFAULT_GROUP如果使用默认的则不需要在项目中指定。
1.3、namespacetenat
相当于 第一层 互相隔离 每个命名空间下面有自己的组。命名空间默认是 public 可以添加 dev prod test 。
1.4、配置格式
没用只是增加一点颜色方便编辑
2、集成方法与demo
1pom
加上macos-config依赖 !--集中配置--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactIdversion2.1.0.RELEASE/version/dependency
如我完整的pom
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.demo.nacos/groupIdartifactIdnacos-service/artifactIdversion1.0-SNAPSHOT/version!-- springBoot --parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.0.4.RELEASE/version/parentpropertiesjava.version1.8/java.versionmaven.compiler.plugin.version3.7.0/maven.compiler.plugin.versionmaven.source.plugin3.0.1/maven.source.pluginproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependency!--nocas必须在web环境下--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- SpringCloud --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversionFinchley.RELEASE/version/dependency!-- SpringCloud Alibaba --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion2.1.0.RELEASE/version/dependency!--服务注册--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdversion0.2.2.RELEASE/version/dependency!-- nacos 注册中心客户端 --
!-- dependency--
!-- groupIdcom.alibaba.cloud/groupId--
!-- artifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId--
!-- version2.1.0.RELEASE/version--
!-- /dependency--!--集中配置--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactIdversion2.1.0.RELEASE/version/dependency/dependenciesbuildfinalNamemy-service/finalNamepluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build
/project
2配置文件
bootstrap加上config配置连接
spring:application:name: my-servicecloud:compatibility-verifier:enabled: falsenacos:#服务注册discovery:server-addr: xx.xx.xxx:8848#配置中心config:server-addr: xx.xx.xxx:8848
如我完整的
spring:application:name: my-servicecloud:compatibility-verifier:enabled: falsenacos:#服务注册discovery:server-addr: xx.xx.xxx:8848#配置中心config:server-addr: xx.xx.xxx:8848
server:port: 8877servlet:context-path: /myProvider3启动类 无需改动
4业务代码
import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;RestController
RequestMapping(/test)
//刷新配置
RefreshScope
public class TestController {Value(${user.text})private String userText;GetMapping(/getUserName)public String getTemp(HttpServletRequest request) throws InterruptedException {return userText;}
}
3、测试
启动 3.1、简单获取集中配置 1访问 http://localhost:8877/myProvider/test/getUserName 2修改nacos上的配置 再次刷新浏览器可以看到获取到最新的配置了 3.2、指定组 同步修改bootstrap配置文件并重启代码 再次刷新浏览器 3.3、指定环境
集中配置划分为dev、test、prod。新增几个配置 如dev的内容为 同步修改bootstrap配置文件并重启代码 再次刷新浏览器 3.4、本地配置覆盖远程
如我本地新增 此时获取的仍然是远程的 如果希望本地配置覆盖远程需要在bootstrap配置文件中开启配置
4、远程配置管理
一般只将固定的配置放在本地boostrap其他配置都放到远程nacos集中配置上。如现在只将nacos的连接和获取集中配置放在本地其他如端口号、数据库连接等信息放在集中配置上。
1pom添加依赖 !--mybatis--dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion1.3.2/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.13/version/dependency
2启动类
SpringBootApplication
EnableDiscoveryClient
MapperScan(com.demo.nacos.provider.mapper)
public class ProviderApplication {public static void main(String[] args) {SpringApplication.run(ProviderApplication.class, args);}
}
3业务代码 Autowiredprivate UserDao userDao;RequestMapping(/getAllUsers)public ListUserDTO getAllUsers(){return userDao.getAllUsers();} select idgetAllUsers resultTypecom.demo.nacos.common.dto.UserDTOSELECTNAME userName,ACCOUNT userAccount
FROMt_user_new/select
4nacos集中配置
server.port1111
#server.servlet.context-path/myProvider
user.text wtyy分组下 prod生产环境 的值
#mybatis
spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver
#spring.datasource.urljdbc:mysql://localhost:3306/demo?useUnicodetruecharacterEncodingutf-8useSSLfalse
spring.datasource.usernameroot
#spring.datasource.passwordwtyyspring.datasource.urljdbc:mysql://xxx.xx.xxx:3306/demo?useUnicodetruecharacterEncodingutf-8useSSLfalseallowMultiQueriestrue
spring.datasource.passwordxxxxxx
#mybatis
mybatis.mapper-locationsclasspath*:mapper/*Mapper.xml 5本地配置
spring:application:name: my-servicecloud:compatibility-verifier:enabled: falsenacos:#服务注册discovery:server-addr: xxx.xx.xxx:8848#配置中心config:server-addr: xxx.xx.xxx:8848group: wtyyprofiles:active: prod
server:servlet:context-path: /myProvider6测试
启动后访问接口 这时把bootstrap改为dev环境因为集中配置dev文件没有配置数据库信息所以启动报错