<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.9.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.laiya</groupId> <artifactId>user-center</artifactId> <version>0.0.1-SNAPSHOT</version> <name>user-center</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <!--Sporing Boot--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--Nacos--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--feign--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-httpclient</artifactId> </dependency> <!-- nacos 动态配置--> <!-- <dependency>--> <!-- <groupId>com.alibaba.cloud</groupId>--> <!-- <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>--> <!-- </dependency>--> <!--Redis--> <!-- <dependency>--> <!-- <groupId>org.springframework.boot</groupId>--> <!-- <artifactId>spring-boot-starter-data-redis-reactive</artifactId>--> <!-- </dependency>--> <!--Mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--Mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency> <!--Lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> <!--Test--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-websocket</artifactId> <version>5.2.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-sentinel</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <!--整合Spring Cloud--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.SR3</version> <type>pom</type> <scope>import</scope> </dependency> <!--整合Spring Cloud Alibaba--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <!--分别设置开发,测试,生产环境--> <profiles> <!-- 开发环境 --> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <environment>dev</environment> </properties> </profile> <!-- 测试环境 --> <profile> <id>test</id> <activation> <activeByDefault>false</activeByDefault> </activation> <properties> <environment>test</environment> </properties> </profile> <!-- 生产环境 --> <profile> <id>pro</id> <activation> <activeByDefault>false</activeByDefault> </activation> <properties> <environment>pro</environment> </properties> </profile> </profiles> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.16</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>8</source> <target>8</target> </configuration> </plugin> </plugins> <!-- 打包后文件名称:项目名-环境-版本 --> <finalName>${project.artifactId}-${environment}-${project.version}</finalName> <resources> <resource> <directory>src/main/resources</directory> <!-- 开启过滤替换功能--> <filtering>true</filtering> <includes> <!-- 项目打包完成的包中只包含当前环境文件 --> <include>application.yml</include> <include>application-${environment}.yml</include> <include>bootstrap.yml</include> <include>mybatis/*/*.xml</include> <include>templates/*.html</include> <include>static/</include> </includes> </resource> </resources> </build> </project>
pom 里配置了多环境打包,openfeign,zipkin,actuator,sentinel,websocket,lombok 等组件下面对这些组件html
实现多环境打包须要配置多个*.yml 配置文件,配置文件java
spring: profiles: active: "@environment@"
application-dev内容mysql
#======================================# #========== Server settings ==========# #======================================# server: port: 8086 # servlet: # context-path: /user-center tomcat: uri-encoding: UTF-8 spring: #server name application: name: user-center #======================================# #========== Database settings ==========# #======================================# datasource: driver-class-name: com.mysql.cj.jdbc.Driver username: password: xxxxx url: jxxxxx #======================================# #========== Nacos ==========# #======================================# cloud: nacos: discovery: # nacos server address server-addr: xxxx thymeleaf: prefix: classpath:/templates/ check-template-location: true suffix: .html encoding: utf-8 servlet: content-type: text/html mode: HTML5 cache: false #======================================# #========== zipkin ==========# #======================================# zipkin: base-url:xxx discovery-client-enabled: false sleuth: sampler: # 抽样率 10% probability: 1.0 #======================================# #========== MyBatis settings ==========# #======================================# mybatis: mapper-locations: classpath:templates/*/*.xml #======================================# #========== Redis settings ==========# #======================================# # redis: # enabled: true # host: xxx # port: 6379 # ssl: false # database: 0 # password: x'x'x'x # jedis: # pool: # # 最大空闲链接数 # maxIdle: 3 # # 最大活动链接数 # maxActive: 20 feign: client: config: # 想要配置的微服务 名称 全局配置 default user-center: loggerLevel: full # httpclient 链接池 httpclient: enabled: true # feign 的最大链接数 max-connections: 200 # feign 的单个路径最大链接数 max-connections-per-route: 50 #======================================# #========== Config sttings ==========# #======================================# # body: controllerMethodList: swaggerResources, getDocumentation management: endpoints: web: exposure: include: '*'
mysql 配置信息说明react
datasource: driver-class-name: com.mysql.cj.jdbc.Driver username: password: xxxxx url: jxxxxx
mysql 版本>= 6.x 须要用 com.mysql.cj.jdbc.Driver
mysql 版本<= 5.x 须要用 com.mysql.jdbc.Driver
** com.mysql.jdbc.Driver 源码 以下**git
public class Driver extends com.mysql.cj.jdbc.Driver { public Driver() throws SQLException { super(); } static { System.err.println("Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. " + "The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary."); } }
经过源码咱们能够看到 Driver 继承了 com.mysql.cj.jdbc.Driver,若是不加 cj
项目也能够运行可是会打印出一句警告的话,大概意思是说驱动版本须要升级
因此在出现这句话的时候你们不要谎。github
另外须要注意的是在为应用起名字的时候尽可能不要用_
和特殊字符,能够用-
,不然在启动的时候会打印出警告web
针对微服务,咱们在新增微服务组件的时候尽可能遵循三个步骤
1 pom 文件引入依赖
2 yml 写配置
3 项目加注解redis
用户微服务引入Nacos 步骤spring
<!--Nacos--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
#=========================# #========== Nacos =========# #=========================# spring: cloud: nacos: discovery: server-addr: (nacos 请求地址,格式为 ip[域名]:port; 例如 xxx.com:8848,注意 地址前面不要加http 后者https) # namespace: (Nacos 命名空间的uuid 不是名称) # cluster-name: xxx
下一节会为你们讲解服务和服务之间的调用,但愿可以帮助你们搭建一个简单的微服务系统。sql