一.项目初始配置
1.1 引入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.lxy</groupId>
<artifactId>springbootdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springbootdemo</name>
<packaging>jar</packaging>
<description>Demo project for Spring Boot</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--SpingBoot集成junit测试的起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mybatis起步依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- MySQL连接驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 配置使用redis启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
1.2 添加数据库连接信息
在application.properties中添加数据量的连接信息
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboottest?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
1.3 创建数据库表
CREATE TABLE `user` (
`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=12 DEFAULT CHARSET=utf8;
1.4 创建实体Bean
public class User {
private Long id;
private String username;
private String password;
private String name;
.................
}
1.5 编写Mapper
@Mapper
public interface UserMapper {
public List<User> queryUserList();
}
1.6 配置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.lxy.mapper.UserMapper">
<select id="queryUserList" resultType="com.lxy.domain.User">
select * from user
</select>
</mapper>
1.7 在application.properties中添加mybatis的信息
mybatis.type-aliases-package=com.lxy.domain
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
1.8 编写测试Controller
@Controller
public class MybatisController {
@Autowired
private UserMapper userMapper;
@RequestMapping("/query")
@ResponseBody
public List<User> queryUserList(){
List<User> users = userMapper.queryUserList();
return users;
}
}
1.9 测试
二. SpringBoot整合Spring Data JPA
2.1 添加Spring Data JPA的起步依赖
<!-- springBoot JPA的起步依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
2.2 添加数据库驱动依赖(添加请忽略)
<!-- MySQL连接驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2.3 在application.properties中配置数据库和jpa的相关属性
#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
2.4 修改实体配置实体
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
private String name;
.........................
}
2.5 编写UserRepository
public interface UserRepository extends JpaRepository<User,Long> {
public List<User> findAll();
}
2.6 编写测试类
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootdemoApplication.class)
public class JpaTest {
@Autowired
private UserRepository userRepository;
@Test
public void test() {
List<User> users = userRepository.findAll();
System.out.println(users);
}
}
2.7 测试
三. SpringBoot整合Redis
3.1 添加redis的起步依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
3.2 配置redis的连接信息
#Redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
3.3 注入RedisTemplate测试redis操作
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootdemoApplication.class)
public class JpaTest {
@Autowired
private UserRepository userRepository;
@Autowired
private RedisTemplate<String, String> redisTemplate;
@Test
public void test() {
String userListData = redisTemplate.boundValueOps("users.findAll").get();
if(StringUtils.isEmpty(userListData)){
List<User> users = userRepository.findAll();
System.out.println("users:"+users);
if(!CollectionUtils.isEmpty(users)){
//可以转json
redisTemplate.boundValueOps("users.findAll").set(users.toString());
}
}
String userListData2 = redisTemplate.boundValueOps("users.findAll").get();
System.out.println("userListData2############:"+userListData2);
}
}
四. SpringBoot整合数据源
五.使用小技巧
5.1 打包
当你的 Spring Boot 准备提测或者上线,都需要打成 jar 包或者 war 包运行,war 包方式这里不说直接丢到 Server 里面运行即可,这里介绍直接运行 jar 包的方式。
$ java -jar javastack-0.0.1-SNAPSHOT.jar
这种方式也支持开启远程调试,如:
$ java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n -jar javastack-0.0.1-SNAPSHOT.jar
5.2 用插件运行
可以在 IDE 或者命令行中使用 Maven 和 Gradle 插件来运行 Spring Boot 应用。
1)Maven Plugin
$ mvn spring-boot:run