整合Junit
引入依赖
在pom.xml加入单元测试的starter
<!--引入junit依赖启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
测试类
@SpringBootTest //SpringBoot单元测试的专有注解
@RunWith(SpringJUnit4ClassRunner.class)
public class MyTest {
@Autowired
private Student student;
@Test
public void test(){
System.out.println(student.getName());
}
}
整合SpringMVC
日志输出设置
# 日志级别设置格式是
# 包名: 日志级别(常用的级别有4个: debug info warn error)
logging:
level:
org.springframework: info
top.mingself: info
访问静态资源
springboot定义的几个位置用于存放静态资源
public class ResourceProperties {
//定义了静态资源路径
private static final String[] CLASSPATH_RESOURCE_LOCATIONS =
new String[]{"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"};
}
一般把静态资源存放于classpath:/static/
目录下
自定义静态资源位置
# 当然,如果想自定义位置也可以,使用下面格式即可
spring:
resources:
static-locations: classpath:/templates/
拦截器配置
定义拦截器
自定义一个类实现HandlerInterceptor接口,重写自己需要的方法
top.mingself.interceptor.MyInterceptor.java :
@Component
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("进入controller之前");
return true; //放行
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("离开controller之后");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("页面渲染完毕之后");
}
}
注册拦截器
自定义一个配置类,实现WebMvcConfigurer接口,并通过addInterceptors方法将自己的拦截器注册到SpringBoot
top.mingself.config.WebMVCConfig.java :
//mvc配置类
@Configuration
public class WebMVCConfig implements WebMvcConfigurer {
@Autowired
private MyInterceptor myInterceptor;
//向spring注册拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry
.addInterceptor(myInterceptor) //向spring添加拦截器
.addPathPatterns("/**") //拦截所有路径
.excludePathPatterns("/images/1.jpg"); //放行1.jpg
}
}
整合Mybatis
添加依赖
pom.xml中添加依赖
<!--调整mysql的版本-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!--加入mybatis的启动器,这是mybatis公司提供的-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
创建userMapper接口
dao层接口, springboot推荐使用xxxMapper的名字
top.mingself.mapper.UserMapper.java
public interface UserMapper {
List<User> findAll();
}
创建userMapper映射
在resources下创建
mappers
目录,然后在此目录下创建UserMapper.xml
文件,注意:这里需要包的对应
resources/mappers/UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="top.mingself.mapper.UserMapper">
<select id="findAll" resultType="top.mingself.domain.User">
select * from tb_user;
</select>
</mapper>
添加配置文件
在配置文件
application.yaml
中添加数据源和mybatis的配置
resources/application.yaml
# 数据源配置(springboot内置连接池对象HiKariCP)
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql:///springboot
username: root
password: root
# mybatis简单配置
mybatis:
mapper-locations: classpath:mappers/** # 指定mapper映射文件
configuration:
map-underscore-to-camel-case: true # 开启驼峰式映射
切换数据源
Springboot 2.2.0版本之后,内置了HiKariCP连接池. 如果需要切换druid连接池, 使用以下方法
- 修改pom.xml,添加druid的依赖
<!--druid依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.15</version>
</dependency>
- 修改application.yaml,添加
spring.datasource.type
配置项
# 连接池配置(springboot内置连接池对象HiKariCP)
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql:///springboot
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
整合redis
Spring为了让开发者简化Jedis的操作,提供了
spring-data-redis
框架,它对reids底层开发包(Jedis)进行了高度封装,通过
RedisTemplate
对象实现了redis各种操作、异常处理及序列化,支持发布订阅等功能。
添加依赖
pom.xml中加入依赖
<!--redis 起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
添加配置(可省略)
Springboot默认会连接localhost:6379端口,然后操作索引为0的数据,如果需要调整,可以使用下面的配置
spring:
redis:
host: localhost # 服务器地址
port: 6379 # 端口
database: 0 # 使用库的索引标识
案例:
List<User> userList = (List<User>)redisTemplate.opsForValue().get("users"); //从redis查询
if(userList == null){
userList = userMapper.findAll(); //从数据库查询
//放入redis
redisTemplate.opsForValue().set("users", userList);
}
request.setAttribute("users",userList);
Q.E.D.