Spring Boot 配置全流程 总结
1. 简介
Springboot可以简化SSM的配置,提高开发效率。
2. 代码
在pom.xml中添加:
<parent>
<!-- 包含SSM常用依赖项 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.5</version>
</parent>
<dependencies>
<dependency>
<!-- 启动器,包含SSM常用依赖项 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
在Main.java中添加:
@SpringBootApplication
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class,args);//自动创建ioc容器,启动内置tomcat
}
}
创建统一配置文件:
resources/application.properties:
# 使用内置配置项
# 重设默认端口8080
server.port = 8081
# 重设默认根路径/
server.servlet.context-path=/good
# 自定义配置
good.name = jojo
或者application.yaml文件:
# 层次化结果,通过缩进解决包含关系
server:
port: 80
servlet:
context-path: /book
good:
name: jojo
创建业务:
@RestController
@RequestMapping("hello")
//@ConfigurationProperties(prefix = "good")也可以通过注解获取配置文件中的自定义变量,可以读取集合,不需要@Value注解,注意必须包含前缀和变量同名
public class HelloController {
@Value("${good.name}")//直接访问统一配置文件中的自定义变量,不能读取集合
private String name;
@GetMapping("good")
public String good(){
System.out.println(goodName);
return "hello";
}
}
3. 配置文件选择
在application.yaml包含:
#同时激活application-test.yaml和application-dev.yaml的配置
spring:
profiles:
active: test,dev
在application-test.yaml包含:
good:
name: dev
在application-dev.yaml包含:
good:
id: 1234
也可以二选一:
在application.yaml包含:
#只激活application-test.yaml
spring:
profiles:
active: test
如果属性重复以最后包含的文件为准。
4. 静态资源
静态资源可放在/resources/static下。访问时不用写static前缀。
5. 拦截类
拦截类还是需要自己添加配置类:
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor());
}
}
6. Mybatis
在pom.xml加入依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>1.2.18</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
</dependencies>
Main.java:
@MapperScan("com.jojo.mapper") //mapper接口所在的的位置
@SpringBootApplication
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class,args);
}
}
application.yaml:
mybatis:
mapper-locations: classpath:/mappers/*.xml #指定xml文件的位置
type-aliases-package: com.jojo.pojo
configuration:
map-underscore-to-camel-case: true
auto-mapping-behavior: full
log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
7. 声明式事务
在pom.xml加入以下依赖后,就可以使用@Transactional了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
8. AOP
在pom.xml加入以下依赖后,正常创建切面类就行
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
9. 打包
在pom.xml加入以下插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
在Maven中点击package命令:
将target中生成的jar包拷贝到服务器,执行以下命令就可独立运行了:
java -jar xxx.jar
也可以修改yaml中的参数,如修改port号,切换yaml文件等:
java -jar -Dserver.port=1234 -Dspring.profiles.active:test xxx.jar