SpringBoot 整合
1. SpringBoot整合SpringMVC
和创建一个 SpringBoot项目相同,需要导入web 相关 的启动器,创建Controller即可
在yaml配置文件中,常用配置有:
-
server.port :指定服务器端口号
-
server.servlet.context.path:设置项目的根路径
-
spring.mvc.view.prefix 和 spring.mvc.view.suffix 配置视图解析器的前后缀
-
spring.resources.static-locations:配置静态资源的位置
如果不配置,默认静态资源放在
-
classpath:/META-INF/resources/
-
classpath:/resources/
-
classpath:/static/
-
classpath:/public/
如果配置了自己指定的存放位置,那么原先这些默认的就失效了
-
-
spring.http.encoding.charset 和 spring.http.encoding.enabled 配置http请求和响应的字符编码
拦截器的配置,和之前一样,创建一个自定义的拦截器类。创建一个配置类(只要放在启动类所在的包下,就能被扫描到),该配置类实现 WebMvcConfigurer,重写addInterceptors
2. SpringBoot 整合 MyBatis
-
导入依赖
包括 mybatis相关启动器、数据库jdbc相关启动器(事务管理器)、druid相关启动器、mysql驱动类
<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> <!-- druid启动器的依赖 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-3-starter</artifactId> <version>1.2.23</version> </dependency> <!-- 驱动类--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.28</version> </dependency> </dependencies>
-
创建mapper接口和mapper的xml文件,这里不需要他们的路径相同
-
创建yaml 配置文件,注意之前的mybatis-config 中的内容也写在该文件中
还有 druid 的配置
#druid 连接池 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource username: root password: 123456 url: jdbc:mysql://localhost:3306/mybatis-example driver-class-name: com.mysql.cj.jdbc.Driver #mybatis 配置 setting、别名 mapper等 mybatis: mapper-locations: classpath:/mapper/*.xml #指定mapper xml文件 type-aliases-package: com.ztone.pojo #别名配置 configuration: map-underscore-to-camel-case: true #驼峰式 auto-mapping-behavior: full #多层映射 log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl #日志
-
创建启动类,在启动类上使用 @MapperScan 指定mapper 接口
@MapperScan("com.ztone.mapper") @SpringBootApplication public class Main { public static void main(String[] args) { SpringApplication.run(Main.class,args); } }
关于事务
在springboot 中使用事务,只需要导入 数据库jdbc相关启动器,在相关方法上使用
@Transactional 注解即可
关于AOP
在springboot中使用 aop,和事务一样导入 aop相关的启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
直接创建切面类即可
@Component
@Aspect
@Order(1)
public class LogAdvice {
@Before("execution(* com.ztone.controller.*.*(..))")
public void before(JoinPoint point){
String name = point.getSignature().getName();
System.out.println(name + "开始执行了");
}
}
3. springboot 项目打包和运行
springboot 项目打成的包 是 jar 包,因为内置了服务器,可以直接通过 java命令启动
打包springboot项目,首先导入一个插件,否则运行时找不到入口
<!-- SpringBoot应用打包插件-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
然后使用 maven的打包命令或插件即可,生成了一个 jar文件
运行命令:
java -jar [选项] [参数] <jar文件名>
-
-D 设置系统属性,比如设置端口号、设置激活的配置文件
-
-Dserver.port=80
-
-Dspring.profiles.active=dev
-
-
-X 设置 jvm 参数、例如内存大小、垃圾回收策略