1. 注解
1.1 主程序注解
//开启springsession
@EnableRedisHttpSession
//开启缓存功能
@EnableCaching
//开启服务远程调用
@EnableFeignClients(basePackages = "com.xxx.xx")
//开启服务的发现
@EnableDiscoveryClient
//开启mapper的扫描
@MapperScan("com.xxx.mapper")
@SpringBootApplication
//排除数据源有关的配置
//@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
//@SpringBootApplication(exclude = GlobalTransactionAutoConfiguration.class)
public class ProductApplication {
public static void main(String[] args) {
SpringApplication.run(ProductApplication.class,args);
}
}
1.2 其它注解
@FeignClient("服务名")
@RestController = @Controller + @ReponseBody
@RequestBody
@Param("字段别名")
@PathVariable("路径参数")
@Value("${配置项的名}") = @ConfigurationProperties
@RefreshScope //动态获取 并 刷新config配置
@TableField(exist = false) //标注字段不是数据表的相关属性
@Valid //开启校验(JSR303)
@NotBlank、@NotEmpty、@URL、@Pattern、@Null、@NotNull
@Validated //校验分组
@Self4j
//集中处理所有异常
@RestControllerAdvice(basePackages="") = @ResponseBody + @ControllerAdvice(basePackages="")
@ExceptionHandler(value = Exception.class)
@TableLogic //逻辑删除注解
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@RequestParam(value = "" ,required = true)
2. 配置中心
2.1 配置中心yaml/yml格式
server:
port: 10000
servlet:
session:
timeout: 30m
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql:///gulimall_pms?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver
cloud:
# oss配置
# alicloud:
# access-key: your-ak
# secret-key: your-sk
# oss:
# endpoint:
nacos:
#服务注册中心
discovery:
server-addr: localhost:8848
#服务配置中心
config:
server-addr: localhost:8848
#日志级别,输出SQL语句
logging:
level:
com.xx.xx: debug
mybatis-plus:
#设置实体类的自增主键
global-config:
db-config:
id-type: auto
#逻辑删除
logic-delete-value: 1 #已删除
logic-not-delete-value: 0 #未删除
mapper-locations: classpath:/mapper/**/*.xml
2.2 配置中心bootstrap.properties格式
spring.application.name=product
spring.cloud.nacos.config.server-addr=localhost:8848
spring.cloud.nacos.config.namespace=配置中心-命名空间名称(UUID的长串)
spring.cloud.nacos.config.group=配置分组
3. 依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!-- MySQL链接驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
<!-- MyBatisPlus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</dependency>
<!-- Feign远程调用 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
<!-- nacos服务注册与发现 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- nacos配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.13</version>
</dependency>
<!-- 自定义校验器 -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.5.Final</version>
<scope>compile</scope>
</dependency>
</dependencies>
3.1 版本依赖管理
<dependencyManagement>
<dependencies>
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-dependencies</artifactId>-->
<!-- <version>Hoxton.SR6</version>-->
<!-- </dependency>-->
<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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>