SpringBoot学习笔记
1.使用idea骨架直接创建SpringBoot程序
2.使用官网创建https://start.spring.io/
3.使用阿里的网站创建https://start.aliyun.com/
在没有网络的时候自己搭建(前提是本地仓库有依赖文件)
//继承版本控制
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.11</version>
</parent>
//web程序的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
//程序的启动入口
@SpringBootApplication
public class Demo1Application {
public static void main(String[] args) {
SpringApplication.run(Demo1Application.class, args);
}
}
忽略不想看到的的文件小方法
在setting设置中有一个file types设置里面有忽略文件的后缀
setting -> file types -> ignored files and folders
SpringBoot的优点
- 简化了Spring的开发
- 内置tomcat服务器等
- 版本控制
引导类
启动springboot的入口(也是一个配置类)
@SpringBootApplication
public class Demo1Application {
public static void main(String[] args) {
SpringApplication.run(Demo1Application.class, args);
}
}
内嵌tomcat服务器
实际上是将tomcat服务注册成一个bean交给spring管理这样就实现了不用自己配置tomcat服务器
排除依赖
//排除依赖
<exclusions>
<exclusion>
<groupId></groupId>
<artifactId></artifactId>
</exclusion>
</exclusions>
REST风格的开发方式
- 书写简化代码
- 外部不知道进行什么操作(保密性高)
- 根据请求方式进行业务操作
- GET
- POST
- PUT
- DELETE等等
SpringBoot配置怎么写
-
使用application.properties配置文件修改配置
#修改端口 server.port=80 #修改启动配置 spring.main.banner-mode=off #日志的级别 logging.level.root=error
-
使用yaml文件格式来配置(重数据轻格式)
server: port: 80 spring: main: banner-mode: off
-
使用yml文件格式来配置(主流配置文件)
server: port: 80 spring: main: banner-mode: off
-
具体格式要求
-
数据与属性之间要有一个空格分隔
-
层级关系一层一层嵌套
-
#表示注释
#表示注释 server: port: 80 spring: main: banner-mode: off #user对象数组 user: [{name:zyl,age:18},{name:zs,age:11}]
可以读取配置文件
@Component //读取数据 @ConfigurationProperties("datasource") public class Mydata { private String driver; private String url; private String username; private String password; public Mydata() { } public Mydata(String driver, String url, String username, String password) { this.driver = driver; this.url = url; this.username = username; this.password = password; } /** * 获取 * @return driver */ public String getDriver() { return driver; } /** * 设置 * @param driver */ public void setDriver(String driver) { this.driver = driver; } /** * 获取 * @return url */ public String getUrl() { return url; } /** * 设置 * @param url */ public void setUrl(String url) { this.url = url; } /** * 获取 * @return username */ public String getUsername() { return username; } /** * 设置 * @param username */ public void setUsername(String username) { this.username = username; } /** * 获取 * @return password */ public String getPassword() { return password; } /** * 设置 * @param password */ public void setPassword(String password) { this.password = password; } public String toString() { return "Mydata{driver = " + driver + ", url = " + url + ", username = " + username + ", password = " + password + "}"; } }
SpringBoot整合Junit
//导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
//测试类 @SpringBootTest class Demo1ApplicationTests { @Test void contextLoads() { System.out.println("hello springboot"); } }
SpringBoot整合Mybatis
1.导入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <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.2.0</version> </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>
2.编写Dao层接口
@Mapper public interface UserDao { List<User>getAll(); @Select("select * from user where id=#{id}") User getById(int id); }
3.配置文件的sql语句(复杂的sql语句)
<?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.zyl.Dao.UserDao"> <select id="getAll" resultType="com.zyl.Pojo.User"> select * from user </select> </mapper>
4.业务层接口
public interface UserService { List<User> getAll(); User getById(int id); }
5.业务层实现类
@Service public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; @Override public List<User> getAll() { List<User> users = userDao.getAll(); return users; } @Override public User getById(int id) { return userDao.getById(id); } }
6.实现类
@SpringBootTest class Demo1ApplicationTests { @Autowired private UserService userService; @Test void contextLoads() { List<User> users = userService.getAll(); System.out.println(users); } @Test void getById() { int id=1; System.out.println(userService.getById(id)); } }
-
SpringBoot整合MybatisPlus
1.导入坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</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>
2.数据层接口(继承接口简化开发)
@Mapper
public interface UserDao extends BaseMapper<User> {
}
3.实体类
package com.mybatisplus.Pojo;
public class User {
private int id;
private String name;
public User() {
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
/**
* 获取
* @return id
*/
public int getId() {
return id;
}
/**
* 设置
* @param id
*/
public void setId(int id) {
this.id = id;
}
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this.name = name;
}
public String toString() {
return "User{id = " + id + ", name = " + name + "}";
}
}
4.测试类
@SpringBootTest
class MybatisPlusApplicationTests {
@Autowired
private UserDao userDao;
@Test
void contextLoads() {
User user = userDao.selectById(1);
System.out.println(user);
}
}
SpringBoot整合Druid
1.导入坐标
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</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>
2.配置文件
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/db1?characterEncoding=utf-8&useSSL=true
username: root
password: 123456
3.测试类和Mybatis一样
使用lombok加速实体类开发
1.导入坐标
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
2.简介
//这个注解提供了了相应的get set tostring等方法
@Data
public class Book {
private Integer id;
private String type;
private String name;
private String description;
}