一.SpringBoot环境搭建
1.使用idea工具创建一个maven工程,该工程为普通的java工程即可
2. 添加SpringBoot的起步依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
3.编写SpringBoot引导类
要通过SpringBoot提供的引导类起步SpringBoot才可以进行访问
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class MySpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(MySpringBootApplication.class);
}
}
二.集成Mybatis
1 添加Mybatis的起步依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2.在application.properties中添加数据库的连接信息
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test? useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
3. 编写Mapper
@Mapper
public interface UserMapper {
public List<User> queryUserList();
}
4.配置Mapper映射文件
在src\main\resources\mapper路径下加入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="com.itheima.mapper.UserMapper">
<select id="queryUserList" resultType="user">
select * from user
</select>
</mapper>
5.在application.properties中添加mybatis的信息
#spring集成Mybatis环境
#pojo别名扫描包
mybatis.type-aliases-package=com.itheima.domain
#加载Mybatis映射文件
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
6.编写测试Controller
@Controller
public class MapperController {
@Autowired
private UserMapper userMapper;
@RequestMapping("/queryUser")
@ResponseBody
public List<User> queryUser(){
List<User> users = userMapper.queryUserList();
return users;
}
}
三.集成Junit
集成Junit添加此坐标即可
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
四.集成SpringDataJPA
1 添加Spring Data JPA的起步依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- MySQL连接驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2.在application.properties中配置数据库和jpa的相关属性
#DB Configuration:
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?
useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
#JPA Configuration:
spring.jpa.database=MySQL
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy
3. 创建实体配置实体
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String username;
private String password;
private String name;
4.编写userMapper
public interface UserMapper extends JpaRepository<User,Integer> {
public List<User> findAll();
}
5.编写测试类
@RunWith(SpringRunner.class)
@SpringBootTest(classes=BootJpaApplication.class)
public class UserJpaTest {
@Autowired
private UserMapper userMapper;
@Test
@Transactional
@Rollback(false)
public void fun(){
User one = userMapper.getOne(2);
System.out.println(one);
}
}
五.集成redis
先启动redis.server
1.添加redis的起步依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2.配置redis的连接信息
#Redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
3.注入RedisTemplate测试redis操作
@RunWith(SpringRunner.class)
@SpringBootTest(classes=BootJpaApplication.class)
public class RedisTest {
@Autowired
private RedisTemplate<String,String> redisTemplate;
@Autowired
private UserMapper userMapper;
@Test
public void test(){
//1. 先从redis中获得数据, 数据json字符串
String userListJson = redisTemplate.boundValueOps("user.findAll").get();
//2.判断redis中师傅存在数据
if (null == userListJson){
//3.不存在, 从数据库查询
List<User> userList = userMapper.findAll();
//4.将查询出的数据存入redis中
//4.1 将查询出的集合转换成json格式的字符串, 使用jackson进行转换
ObjectMapper objectMapper = new ObjectMapper();
try {
userListJson = objectMapper.writeValueAsString(userList);
redisTemplate.boundValueOps("user.findAll").set(userListJson);
System.out.println("redis中没有数据,从数据库查询");
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}else {
//4.2.存在,输出
System.out.println(userListJson);
}
}
}