3.1 SpringBoot整合MVC
创建项目 springboot_02_mvc
3.1.1 起步依赖![](https://i-blog.csdnimg.cn/blog_migrate/43fff6cbf09d4f2e1eb5d9315f3e2d0c.png)
① 新建入口程序类 Application
② 新建 javabean
③ 新建 UserController
运行程序
3.1.2 静态资源目录
在WEB开发中我们经常需要引入一些静态资源 , 例如 : HTML , CSS , JS , 图片等 , 如果是普通的项目静态资源可以放在项目的webapp目录下
现在使用Spring Boot做开发 , 项目中没有webapp目录 , 我们的项目是一个jar工程,那么就没有webapp,我们的静态资源该放哪里呢?
在springboot中有一个叫做ResourceProperties的类,里面就定义了静态资源的默认查找路径:
默认的静态资源路径为:
- classpath:/META-INF/resources/
- classpath:/resources/
- classpath:/static/
- classpath:/public/
我们只要静态资源放在这些目录中任何一个,SpringMVC都会帮我们处理。 我们习惯会把静态资源放在classpath:/static/ 目录下。在resources目录下创建index.html文件
打开浏览器输入 : http://localhost:8080/index.html
覆盖路径
如果想要修改默认的静态资源路径, 配置如下 :
新建 application.yml
请求地址 http://localhost:8080/index.html
3.1.3 自定义拦截器
web开发中的拦截器也是我们经常需要使用的组件,可以帮我们完成一些日志记录 , 数据过滤 , 请求过滤等等很多功能,那么在SpringBoot中该如何配置呢?
回顾一下SpringMVC中配置拦截器的步骤 :
- 编写一个拦截器(实现HandlerInterceptor接口)
- 注册拦截器(mvc:interceptors)
xml
因为SpringBoot没有XML配置文件了 , 所以在SpringBoot中使用拦截器的注册拦截器的方式就不太一样了, 需要借助一个WebMvcConfigurer类帮助我们注册拦截器 , 实现拦截器的具体步骤如下 :
- 编写一个拦截器
- 通过WebMvcConfigurer注册拦截器
编写拦截器
注册拦截器
打开浏览器,输入 : http://localhost:8888/user/findAll
3.2 SpringBoot整合Spring Data JPA
新建项目 springboot_jpa
添加Spring Data JPA的起步依赖
在application.yml中配置数据库和jpa的相关属性
注意:Mysql8.x版本,连接时url需要指定时区,并且驱动类包名发生了变化。
创建实体配置实体
package com.atguigu.bean; import javax.persistence.*; import java.io.Serializable; /** * O - R Mapping 对象关系映射 */ @Entity //声明实体类 @Table(name = "user") //声明实体类与哪个表进行映射 public class User implements Serializable { @Id //声明主键 @GeneratedValue(strategy = GenerationType.IDENTITY) //声明主键生成策略:auto_increment @Column(name = "id") //表的字段配置: private Long id; @Column(name = "username",nullable = false,unique = true,length = 16) private String username; @Column(name = "password") private String password; //如果不指定@Column注解,框架会默认进行映射,字段名和属性名保持一致。 //@Column(name = "name") private String name; //设置属性为临时属性,不需要与表进行映射。 @Transient private String email; public Long getId() { return id; } public void setId(Long id) { this.id = id; } 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; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + ", name='" + name + '\'' + ", email='" + email + '\'' + '}'; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } } |
编写UserRepository
编写service类
编写controller类
编写主程序类
测试运行