//写在前面
20210512
为了毕设,找了一门springboot的课程,尽量把有用的东西都记录下来,持续更新至学完。
了解SpringBoot是什么、有什么作用
(1)SpringBoot是一个可以便捷搭建Spring工程的脚手架,可以帮助开发人员快速搭建大型的Spring项目。
(2)SpringBoot最核心的思想就是“依赖大于配置”,相比Spring而言减少了很多繁琐的配置过程,使得开发人员可以把更多的时间用来想功能怎么实现,业务怎么实现,而不是成天配环境。
能够使用SpringBoot搭建项目
需求:可以在浏览器中访问http://localhost:8080/hello
实现步骤:(助记:贱赖动里侧)
1.创建工程(New Projects时候直接选择Maven类型即可,JDK选择自己电脑的版本)
2.添加依赖在pom.xml中(启动类依赖 spring-boot-starter)(springboot之所以能减少配置是因为添加了启动依赖)(只要加了parent剩下的其他依赖不用写版本号,因为这个父依赖已经把那些版本号包含了)
3.创建启动类
package cn.wzw;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* SpringBoot工程都有的启动引导类,也是工程的入口类
* 注解为:@SqringBootApplication
* main函数可以通过psvm这个快捷键实现
* main函数里面是要run这个application类
*/
@SpringBootApplication
public class Application {
public static void main(String[] args){
SpringApplication.run(Application.class,args);
}
}
4.创建处理器(RestController注解返回的是字符串之类的)(编码顺序:@RestController,因为分析需求需要返回一行字符串 - hello函数 - @GetMapping 因为只是需要读取一下字符串所以选这个注解)
package cn.wzw.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* controller就是处理器的意思,主要编写一些逻辑的代码
* 注解@RestController相当于@ResponseBody+@Controller
* 返回的一定是字符串之类的
*/
@RestController
public class HelloController {
@GetMapping("hello")
public String hello(){
return "Hello,SpringBoot!";
}
}
5.测试(在启动类启动SpringBoot项目,在浏览器中输入http://localhost:8080/hello)
其他:
org.springframework.boot
spring-boot-starter-web
2.4.5
总结:SpringBoot工程可以通过添加启动器依赖和创建启动引导类来创建web工程 spring-boot-starter-web默认应用服务端口为8080
需求:使用java代码配置数据库连接池,并在处理器中可以使用
com.alibaba
druid
1.2.6
jdbc.driverClassName = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://127.0.0.1:3306/exam
jdbc.username = root
jdbc.password = 123456
常用的java注解
引用了新的依赖之后记得重启maven
学到了@Bean那里
能够使用@ConfigurationProperties实现SpringBoot配置文件的配置项的读取或应用
需求:将配置文件中的配置项读取到一个对象中
实现:可以使用SpringBoot提供的注解@ConfigurationProperties,该注解可以将SpringBoot的配置文件中的配置读取到一个对象中(默认必须为application.properties或为application.yml)
实现步骤:
package cn.wzw.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* 配置项类。
* 作用:从配置文件application中读取配置项
* prefix的作用:是前缀
* 配置项类中的类变量名必须与配置前缀之后的配置项名称保持 松散绑定(相同)
*/
@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
private String url;
private String driverClassName;
private String username;
private String password;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
private String url;
private String driverClassName;
private String username;
private String password;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Bean
@ConfigurationProperties(prefix = "jdbc")
public DataSource dataSource() {
return new DruidDataSource();
}
目标:
分析:
yaml与properties配置文件除了展示形式不同之外,其他功能和作用都一样,在项目中原路的读取方式不需要改变。
yml配置文件特征:
树桩层级结构展示配置项
配置项之间有关系的话需要分行空两格
配置项如果有值的话,那么需要在冒号之后再加一个空格
例如application.properties为
jdbc.driverClassName = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://127.0.0.1:3306/exam
jdbc.username = root
jdbc.password = 123456
转变为applicaiton.yml为
jdbc:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/exam
username: root
password: 123456
YAML定义Ain't Markup Language。Yaml是一种简洁的标志性语言,以数据为中心,使用空白、缩进和分行组织数据,从而使数据更加简洁易读。
如果有两种配置文件,都可以读取,要是有同名的,会以properties为准
目标:使用lombok的注解实现pojo类的简化
使用SpringBoot整合SSM工程,需要用到数据库的数据
lombok是一个插件工具包;提供了一些注解@Data,@Getter等注解简化实体类的方法
1.在idea中安装lombok插件
2.添加lombok对应的依赖到项目pom.xml中
3.改造数据
目标:可以修改tomacat端口,访问项目中的静态资源
分析:
目标:可以在spring项目中配置自定义SpringMVC拦截器
分析:
编写拦截器(实现HandlerInterceptor)
编写配置类实现WebMvcConfugurer,在该类中
10 SpringBoot整合-事务连接池
目标:配置SpringBoot自带默认的hikari数据库连接池和使用@Transactional注解进行事务配置
分析:
事务配置
添加事务相关的启动器依赖,mysql相关依赖
编写业务类UserService使用事务注解@Transactional
数据库连接池hik