欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring Boot 部分特性记录

程序员文章站 2022-05-22 08:30:28
...

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

 

server.port=8091

  * 创建配置文件allpication-prod.properties,此文件为生产环境的配置文件

1

server.port=8092

  * 在appliapplication.properties中添加使用的环境

1

2

3

4

#默认配置文件的端口

server.port=8090

#使用的环境名称

spring.profiles.active=dev

  

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

 

Spring Boot 部分特性记录

 

 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

 

Spring Boot 部分特性记录

 

 5、虚拟机的方式

  * 在VM options下使用命令:-Dspring.profiles.active=prod

-Dspring.profiles.active=prod

Spring Boot 部分特性记录

 

可以在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位置开始找。