配置文件说明
application.yml --SpringBoot通用配置文件
service:
port: 8080 // SpringBoot端口号
spring:
application:
name: //项目名
profiles:
active: //指定配置文件名称
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml //配置多个mapper路径,用来指定mapper.xml位置
global-config:
db-config:
id-type: auto //id自增,全局默认主键类型
configuration:
auto-mapping-behavior: partial //自动映射没有定义结果集映射的结果集
map-underscore-to-camel-case: true //数据库的命名规则自动改成java的命名规则
jwt:
tokenHeader: Authorization //JWT存储的请求头
secret: mall-admin-secret //JWT加解密使用的密钥
expiration: 604800 //JWT的超期限时间(60*60*24*7)
tokenHead: 'Bearer' //JWT负载中拿到开头
redis:
database: mall
key:
admin: 'usm':'admin'
resourceList: 'ums':'resourceList'
secure:
ignored:
urls: //安全路径白名单
- /.......
application-dev.yml --SpringBoot开发环境配置文件
spring:
datasource:
url: jdbc:mysql://106.14.92.106:3306/项目名?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
uesrname: reader
password: 123456
redis:
host: localhost //redis服务器地址
database: 0 //redis数据库索引(默认为0)
port: 6379 // redis服务器连接端口
password: //redis服务器连接密码(默认为0)
timeout: 3000ms //连接超时时间(ms)
logging: // 日志记录
level:
root: info
com.macro.mall: debug
application-pro.yml --SpringBoot生产环境配置文件
spring:
datasource:
url: jdbc:mysql://db:3306/项目名?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
uesename: root
password: root
redis:
host: redis //redis服务器地址
database: 0 //redis数据库索引(默认为0)
port: 6379 //redis服务器连接端口
password: //redis服务器连接密码(默认为空)
timeout:3000ms //连接超时时间(ms)
logging:
file:
path: /var/logs
level:
root:info
com.macro.mall: info
pom依赖了解
<!-- SpringBoot通用依赖模块-->
<!-- 提供Web开发场景所需的底层所有依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 监控系统健康情况的工具-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--使用Spring的AOP支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- 支持单元测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--SpringBoot校验框架-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!--集成druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<!--Mysql数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector.version}</version>
</dependency>
<!--Swagger-UI API文档生产工具-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger2.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger2.version}</version>
</dependency>
<!--解决Swagger 2.9.2版本NumberFormatException-->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>${swagger-models.version}</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>${swagger-annotations.version}</version>
</dependency>
<!--redis依赖配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--SpringSecurity依赖配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!--Hutool Java工具包-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<!--JWT(Json Web Token)登录支持-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jjwt.version}</version>
</dependency>
<!--lombok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--SpringBoot配置处理-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!--MyBatis Plus 依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!--MyBatis Plus 代码生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!--Velocity模板引擎-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>${velocity.version}</version>
</dependency>
注解使用
@Bean
:作用于方法上,产生一个对象,然后这个对象交给Spring管理
@Data
提高代码的简洁,可以省去大量的get()、set()、toString()方法
@EqualsAndHashCode
在使用@Data
时同时加上@EqualsAndHashCode(callSuper=true)
注解
@equalsandhashcode(callsuper=false)
表达为在对象比较时不会考虑父类中的成员,仅仅比较子类中的属性就判断是否相同
@equalsandhashcode(callsuper=true)
在比较时会考虑父类中的成员,通过父类和子类中的属性一起判断是否相同
@Builder
建造者模式,创建复杂对象时常用,常于@Data一起使用,不需要写太多的set方法来定义属性内容@Builder public class Card { private int id; private String name; private boolean sex; } Card card = Card.builder().id(10).name("dasd").sex(true).build();
@ControllerAdvice
配合@ExceptionHandler
实现全局异常处理处理全局异常
@ExceptionHandler
() 统一处理方法抛出的异常,参数是某个异常类的class,代表这个方法专门处理该类异常
@ResponseBody
将方法的返回值,以特定的格式写入到response的body区域,进而将数据返回给客户端
@Autowired
获取容器中的对象
@Override
重写
@Configuration
告诉spring这是一个配置类
@EnableWebSecurity
组合注解,他的注解中,又使用了@EnableGlobalAuthentication注解。 配置安全认证策略,配置了认证信息
@EnableGlobalMethodSecurity(prePostEnabled=true)
开启方法的安全认证机制
@EnableTransactionManagement
开启事务支持
@MapperScan
指定要扫描的Mapper类的包的路径,自动为他们生成代理类
@EnableCaching
注解驱动的缓存管理功能
@EnableSwagger2
swagger API文档相关配置
@Controller
作用在控制器上的注解,与service一样,方便做业务范围的区分
@Service
一般用于service层的注解,继承了Component组件,方便做业务范围的区分
@RequestMapping()
注解来将请求URL映射到整个类上,或某个特定的方法上
@ResponseBody
java对象转为json格式的数据
@Value
注入值, 详情百度
@Api(tags = "", description = "")
用在Controller类上, tags:表示说明,description:注释说明这个类
@ApiOperation(value = "")
用在Controller类上, value:字段说明
@ApiModelProperty(value = "", required = true)
用在参数对象的字段上,value:字段说明,required:是否必填
@ApiModel(value = "", description = "")
用在返回对象类上,value:字段说明,descrption:注释说明这个类
NotEmpty
加了@NotEmpty的String类、Collection、Map、数组,是不能为null或者长度为0的
@TableName(valeu = "")
实现实体类型和数据库中的表实现的映射,value:表名
@TableId(value = "id", type = IdType.Auto)
value:自增id,type:设置为自增
@Aspect
告诉容器我这是一个容器类 , 可以做日志
@component
实现bean的注入
@Order()
标记定义了组件的加载顺序,值越小拥有越高的优先级,可以为复数
@Pointcut("execution(public * com.leo.controller.HelloController.hello*(..))")
表达式解释为:匹配com.leo.controller.HelloController类中以hello开头的修饰符为public返回类型任意的方法
@Around
配置Aspect做切面使用,在方法执行之前与之后执行(方法上)
@PostConstruct
在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。
@ConfigurationProperties(prefix = "")
将配置文件的值映射到类上使用,
@Component
把对象加载到spring容器中,最基础的存在,很多注解都是继承它的,只有一个属性值,默认值是“”