Spring Boot 部分特性记录
SpringBoot是Java的一个micro-service框架。它设计的目的是简化Spring应用的初始搭建以及开发过程。使用SpringBoot可以避免大量的xml配置文件,它内部使用很多约定的方式。
以一个最简单的MVC例子来说,使用SpringBoot进行开发的话定义好对应的Controller,Repository和Entity之后,加上各自的Annotation即可。
Repository框架可以选择Spring Data或者Hibernate,可通过*配置。
视图框架也可通过配置选择freemarker或者velocity等视图框架。
下面,介绍一下SpringBoot的一些功能。
SpringBoot框架的启动
SpringBoot使用SpringApplication这个类进行项目的启动。一般都会这么写:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
使用SpringBootApplication注解相当于使用了3个注解,分别是@ComponentScan,@Configuration,@EnableAutoConfiguration。
这里需要注意的是Application这个类所有的package位置。
比如你的项目的包路径是 me.format.project1,对应的controller和repository包是 me.format.project1.controller和me.format.project1.repository。 那么这个Application需要在的包路径为 me.format.project1。 因为SpringBootApplication注解内部是使用ComponentScan注解,这个注解会扫描Application包所在的路径下的各个bean。
Profile的使用
Profile
Spring对不同环境,提供不同配置功能的支持
可以通过**、指定参数等方式快速的切换环境
环境就是平常的开发环境、测试环境、生产环境等
SpringBoot中使用配置文件application.properties&application.yml两种方式,在这两种方式下分别对应各自的profile配置方式,同时还存在命令行、虚拟机、Program arguments三种方式分别访问指定profile:
1、application.properties
* 创建配置文件application-dev.properties,此文件为开发环境的配置文件
1 |
|
* 创建配置文件allpication-prod.properties,此文件为生产环境的配置文件
1 |
|
* 在appliapplication.properties中添加使用的环境
1 2 3 4 |
|
2、application.yml
* 在yml文件中,分为三个ducement,第一个ducument为默认的配置文件,第二个部分为dev的配置文件,第三个部分为prod的配置文件。在默认doucment中使用spring.profiles.active设置使用哪个ducument 的配置。
#默认的配置端口 server: port: 8880 #需要使用的配置文件 spring: profiles: active: prod --- #dev的环境 server: port: 8881 spring: profiles: dev --- #prod的环境 server: port: 8882 spring: profiles: prod
3、Program arguments
* 在Program arguments中配置参数
--spring.profiles.active=dev
4、命令行
* 将项目打包成jar包,切换到命令行的界面下使用命令: java -jar .\spring-boot-01-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod进行打包。
java -jar .\spring-boot-01-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
5、虚拟机的方式
* 在VM options下使用命令:-Dspring.profiles.active=prod
-Dspring.profiles.active=prod
可以在springboot项目中加入配置文件application.yml。
yaml中可以定义多个profile,也可以指定**的profile:
spring:
profiles.active: dev
---
spring:
profiles: dev
myconfig:
config1: dev-enviroment
---
spring:
profiles: test
myconfig:
config1: test-enviroment
---
spring:
profiles: prod
myconfig:
config1: prod-envioment
也可以在运行的执行指定profile:
java -Dspring.profiles.active="prod" -jar yourjar.jar
还可以使用Profile注解,MyConfig只会在prod这个profile下才会生效,其他profile不会生效:
@Profile("prod")
@Component
public class MyConfig {
....
}
自定义的一些Conveter,Interceptor
如果想配置springmvc的HandlerInterceptorAdapter或者HttpMessageConverter。 只需要定义自己的interceptor或者converter,然后加上Component注解。这样SpringBoot会自动处理这些类,不用自己在配置文件里指定对应的内容。 这个也是相当方便的。
@Component
public class AuthInterceptor extends HandlerInterceptorAdapter {
...
}
@Component
public class MyConverter implements HttpMessageConverter<MyObj> {
...
}
模板的使用
比如使用freemarker的时候,加入以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
然后在resources目录下建立一个templates目录即可,视图将会从这个templates位置开始找。
上一篇: 一个简单的php分页类代码
下一篇: 手写 tomcat (nio)
推荐阅读
-
spring boot aop 记录方法执行时间代码示例
-
详解Spring Boot配置使用Logback进行日志记录的实战
-
spring boot aop 记录方法执行时间代码示例
-
Spring Boot2.3 新特性分层JAR的使用
-
Spring boot配置MongoDB以及Morphia踩坑记录
-
Spring Boot AOP记录用户操作日志
-
Spring boot实现AOP记录操作日志
-
Spring Boot分布式系统实践【基础模块构建3.3】注解轻松实现操作日志记录
-
跟着官方文档学 SpringBoot 三:spring boot 特性
-
跟着官方文档学 SpringBoot 三:spring boot 特性