SpringBoo和其他技术的整合
<!-- 整合Jsp -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- JSTL -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
spring:
mvc:
view:
prefix: /
suffix: .jsp
<!-- Mybaits依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<!-- MYSQL数据库连接驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
<scope>runtimer</scope>
</dependency>
在application.yml中添加数据库的连接信息
# DB Configuration:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/数据库名称?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=false
password: ****
-- -------------------------------
-- TABLE STRUCTURE FOR 'student'
-- -------------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(50) DEFAULT NULL,
`password` VARCHAR(50) DEFAULT NULL,
`name` VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (`id`)
)ENGINE=INNODB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
-- -------------------------------
-- RECORDS OF student
-- -------------------------------
INSERT INTO `student` VALUES('1','zhangsan','123','张三');
INSERT INTO `student` VALUES('2','lisi','123','李四');
public class Student {
private Integer id;
private String username;
private String password;
private String name;
...
省略Getter和Setter方法
}
@Mapper
public interface StudentMapper {
public List<Student> findAll();
}
<?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.qianqiao.mapper.StudentMapper">
<select id="findAll" resultType="student">
select * from student
</select>
</mapper>
# Mybatis配置信息
# Spring集成Mybatis环境
mybatis:
# pojo别名扫描报
type-aliases-package: com.qianqiao.entity
# 加载Mybatis映射文件
mapper-locations: classpath:mapper/*Mapper.xml
@RestController
public class MybatisController {
@Autowired
private StudentMapper studentMapper;
@GetMapping("/findAll")
public List<Student> findAll(){
List<Student> students = studentMapper.findAll();
return students;
}
}
<!-- junit测试依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
@RunWith(SpringRunner.class)
@SpringBootTest
public class MybatisTest {
@Autowired
private StudentMapper studentMapper;
@Test
public void findAll(){
List<Student> students = studentMapper.findAll();
System.out.println(students);
}
}
<!--添加springdata-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>
<version>5.1.49</version>
<scope>runtimer</scope>
</dependency>
# DB Configuration:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/数据库名称?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=false
username: root
password: ****
# JPA Configuration:
jpa:
database: MySQL
show-sql: true
generate-ddl: true
hibernate:
ddl-auto: update
@Data
@Entity
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) //IDENTITY 自增
private Integer id;
private String username;
private String password;
private String name;
}
public interface StudentRepository extends JpaRepository<Student,Integer> {
public List<Student> findAll();
}
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootJpaApplication.class)
public class JpaTests {
@Autowired
private StudentRepository studentRepository;
@Test
public void test() {
List<Student> students = studentRepository.findAll();
System.out.println(students);
}
}
<!--添加Redis依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootJpaApplication.class)
public class RedisTest {
@Autowired
private RedisTemplate<String,String> redisTemplate;
@Autowired
private StudentRepository studentRepository;
@Test
public void test() throws Exception{
// 1、从Redis中获取数据(数据的形式为json字符串)
String studentListJson = redisTemplate.boundValueOps("studentRepository.findAll").get();
// 2、判断Redis中是否存在数据
if (null == studentListJson){
// 3、不存在从数据库中查询
List<Student> students = studentRepository.findAll();
// 4、将查询出来的数据存储到Redis缓存中
ObjectMapper objectMapper = new ObjectMapper();
studentListJson = objectMapper.writeValueAsString(students);
redisTemplate.boundValueOps("studentRepository.findAll").set(studentListJson);
System.out.println("=========从数据库中查询==========");
}else {
System.out.println("===========从Redis缓存中获取==========");
}
// 5、将数据打印到控制台
System.out.println(studentListJson);
}
}