SpringBoot与其他框架集成
一、SpringBoot简介
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,约定大于配置。
Spring Boot 简化了基于Spring的应用开发,只需要“run”就能创建一个独立的、生产级别的Spring应用。Spring Boot为Spring平台及第三方库提供开箱即用的设置(提供默认设置),这样我们就可以简单的开始。多数Spring Boot应用只需要很少
二、SpringBoot与其他框架集成
(1)集成mybatis
1、建库建表,例如查询所有用户列表
-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`password` varchar(50) DEFAULT NULL,
`address` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'zhangsan', '123', '北京');
INSERT INTO `user` VALUES ('2', 'lisi', '123', '上海');
2、创建maven
<!--添加起步依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
</parent>
<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>2.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
3、
@SpringBootApplication
public class MybatisApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisApplication.class, args);
}
}
4、在resources目录下添加application.properties文件或者application.yml文件
#连接数据库 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost/springboot?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=root #mybatis别名 mybatis.type-aliases-package=com.study.pojo #加载映射文件 mybatis.mapper-locations=classpath:mapper/*.xml #设置日志,com.study:只查看该包下程序的日志 logging.level.com.study=debug
5、
public class User {
private Integer id;
private String username;
private String password;
private String address;
// TODO getters、setters
}
6、
@Mapper
public interface UserMapper{
List<User> findUsers();
}
7、编写映射文件:在工程的resources/mapper目录下创建UserMapper.xml
<mapper namespace="com.study.mapper.UserMapper">
<select id="findUsers" resultType="user">
SELECT * FROM user
</select>
</mapper>
8、
public interface UserService {
List<User> findUsers();
}
9、
@Service
public class UserServiceImpl implements UserService{
@Autowired(required = false)
private UserMapper userMapper ;
@Override
public List<User> findUsers() {
return userMapper .findUsers();
}
}
10、
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/findUsers")
public List<User> findUsers(){
List<User> users = userService.findUsers();
return users;
}
}
11、发布程序并访问
http://localhost:8080/user/findUsers
(2)
<!--redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--json解析-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>
2、在application.properties文件中配置连接Redis的信息:
#redis,本地可以不配置,默认配置 spring.redis.host=localhost spring.redis.port=6379
3、更新UserServiceImpl类中的findAll方法。在该类中注入RedisTemplate对象。
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Override
public List<User> findUsers() {
// 首先判断缓存中是否有数据
String text = stringRedisTemplate.boundValueOps("study:springboot:user:id:1").get();
List<User> list = JSON.parseArray(text, User.class);
if(list == null){
// 从数据库中查询
list = userMapper.findAll();
// 放入缓存
stringRedisTemplate.boundValueOps("study:springboot:user:id:1")
.set(JSON.toJSONString(list));
}
return list;
}
}
//PS:key = 产线名:服务名:表名:数据类型:key
PS:RedisTemplate 和 StringRedisTemplate的区别:
|
JdkSerializationRedisSerializer 和 StringRedisSerializer 2、使用Jackson库将对象序列化为JSON字符串。优点是速度快,序列化后的字符串短小精悍,不需要实现Serializable接口。但缺点也非常致命,那就是此类的构造函数中有一个类型参数,必须提供要序列化对象的类型信息(.class对象)
|
(3)
2、
@Component
public class TimeProgarm {
@Scheduled(cron = "30 45 15 08 07 *") // cron表达式
public void myTask(){
System.out.println("程序执行了");
}
}
(4)
@RunWith(SpringRunner.class)
@SpringBootTest
public class MybatisTest {
@Autowired
private UserService userService;
@Test
public void contextLoad(){
List<User> users = userService.findUsers();
for (User user : users) {
System.out.println(user);
}
}
}



浙公网安备 33010602011771号