开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情
SpringBoot
1. 自动构建boot
目标:
1.构建springboot项目
2.编写HelloController返回hello world
步骤:
- 使用idea创建空项目
- new model--->spring init(maven上面就是)
- 填写项目基本信息
- 选择依赖,版本(boot)
- 编写HelloController返回hello world
详情:
- 填写基本信息
- 选择依赖
- 编写HelloController返回hello world
三、SpringBoot配置文件
springboot支持两种类型的配置文件,一种是properties(key=val),另一种是yaml(yml),更加容易识别,读取更加方便。
1. 修改端口号
properties
server.port=8081
yml
server:
port: 8082
注意:
如果properties和yml中同时配置了端口号,那么以properties中为准。
2. yml支持数据类型
#基本数据类型 格式 key+ : + 空格 + val
personName: 张三
#对象类型数据
person:
name: 于谦
age: 50
sex: 男
#数组
likes:
- 抽烟
- 喝酒
- 烫头
#集合
books:
- name: 葵花宝典
writer: 郑和
- name: 金瓶梅
writer: 兰陵笑笑生
3. 获取yml配置文件内容
@Value
@RestController
public class HelloController {
@Value("${personName}")
private String name;
@RequestMapping("hello")
public String hello(){
return "hello world " + name;
}
}
@ConfigurationProperties
@Component //注入spring容器
@ConfigurationProperties(prefix = "person") //可以根据前缀注入配置文件中的val
public class Person {
private String name;
private Integer age;
private String sex;
private String likes [];
private List<Booke> books;
//省略set get toString
}
4. 多环境配置文件使用
properties
需要在总配置文件中指定使用哪个配置文件
spring.profiles.active=dev
四、SpringBoot整合其他技术
1. boot整合mybatis
目标:
- 要求使用boot整合mybatis完成查询所有用户的功能
步骤:
- 创建spring-boot-mybatis项目
- 选择版本2.1.X版本(如果选择错误,删除重建)
- 选择依赖:web/lombok/mybatis框架/mysql驱动
- 编写三层架构
- 修改配置文件db配置、mybatis配置
- 测试访问
过程:
-
sql文件
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, `name` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of user -- ---------------------------- INSERT INTO `user` VALUES ('1', 'zhangsan', '123', '张三'); INSERT INTO `user` VALUES ('2', 'lisi', '123', '李四'); SELECT * FROM user; -
选择版本+依赖
- 三层架构
```
@RestController
@RequestMapping("user")
public class UserController {
@Autowired
private UserService userService;
/**
* @Author: guobuyi
* @Date: 11:28 2020/9/18
* @Params []
* @ReturnType: List<User>
* @Description: 查询所有用户
*/
@RequestMapping("findAll")
public List<User> findAll(){
return userService.findAll();
}
}
public interface UserService {
/**
* @Author: guobuyi
* @Date: 11:28 2020/9/18
* @Params []
* @ReturnType: List<User>
* @Description: 查询所有用户
*/
List<User> findAll();
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
/**
* @Author: guobuyi
* @Date: 11:28 2020/9/18
* @Params []
* @ReturnType: List<User>
* @Description: 查询所有用户
*/
@Override
public List<User> findAll() {
return userDao.findAll();
}
}
@Mapper //声明是一个mapper接口
@Repository //注入到spring容器中
public interface UserDao {
/**
* @Author: guobuyi
* @Date: 11:28 2020/9/18
* @Params []
* @ReturnType: List<User>
* @Description: 查询所有用户
*/
List<User> findAll();
}
```
-
mapper.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.dao.UserDao"> <select id="findAll" resultType="user"> select * from user </select> </mapper> -
配置文件
#db配置 spring: datasource: #serverTimezone=UTC 时区必须添加 url: jdbc:mysql://127.0.0.1/itheima?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver username: root password: root #mybatis mybatis: mapper-locations: classpath:mapper/*.xml #mapper.xml位置 type-aliases-package: com.itheima.pojo #实体位置 -
访问