Springboot特点
- 创建独立的Spring应用程序
- 自带Tomcat,不需要另外下载Tomcat,再将项目打包部署到Tomcat,直接使用内嵌Tomcat完成部署
- 简化Maven配置,不需要在pom文件中导入那么多jar包
- 自动配置Spring,不需要xml文件配置
重要注解
@EnableAutoConfiguration
作用
:开启自动配置
修饰范围
:类级注解,只能作用在类上
实际作用
:根据添加在pom文件中的依赖自动配置相关环境,如在pon.xml中引入了spring-boot-starter-web,则会自动根据引入的这个依赖构建相关环境,springMVC环境,web容器环境(tomcat)
@ComponentScan
作用
:开启注解扫描
修饰范围
:类级注解,只能作用在类上
扫描注解范围
:当前包以及当前包的子包
@SpringBootApplication
相当于@EnableAutoConfiguration + @ComponentScan
注
:实际开发中主要使用这个注解
@RestController
相当于@Controller+@ResponseBody
作用
:将当前类实例化实例化为一个控制器对象,并将类中所有方法的返回值转换为json,响应给浏览器
@RequestMapping
作用
: 用来加入访问路径,可以接收get,post等请求方式
@GetMapping
作用
: 限定请求方式只能为get
@Configuration
类似于@Component,对自定义java对象进行管理,是想Bean的注入,例如在Entity中的User上使用此注解
重要概念
main()
:指定主入口类。从而启动springboot中tomcat容器
starter
:启动器
与自动配置没有关系,如spring-boot-starter-xxx 是一组依赖关系的描述符,在pom.xml中这样设置启动器,那么springboot通过这组描述符就知道要配置相关环境,不需要再去maven中央仓库复制粘贴相关依赖,方便开发
配置文件拆分
:
在实际开发过程中生产环境和测试环境有可能是不一样的 因此将生产中的配置和测试中的配置拆分开,是非常必要的在springboot中也提供了配置文件拆分的方式.
注入语法
-
属性注入
字符串
端口
数组
List集合
Map集合
时间
在`application.properties `中写入相关数据
name=huhu
arr=1,2,3,4
date=2020/7/30 10:15:00
list=hu,hui,mian
map={'a':'hu','b':'hui','c':'mian'}
将数据注入(注意Map和Date的格式)
- 对象注入
首先在实体类中加上@ConfigurationProperties(prefix = "user")
然后在application.properties
中写入数据,注意带上前缀
数据注入
集成JSP页面
- 导入相关jar包
<!-- 引入解析jsp相关jar包-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- jstl相关jar包-->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
- 对
application.properties
进行配置
//告诉容器以这种前后缀路径访问的请求通过jsp解析器进行解析
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
//开启jsp实时更新,不需要每次都重启服务器
server.servlet.jsp.init-parameters.development=true
拦截器
- 编写自定义拦截器,并且继承
HandlerInterceptor
接口,根据需要重写preHandle``postHandle``afterCompletion
方法,true
放行,false
拦截
如
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Object user = request.getSession().getAttribute("user");
if (user != null) {
return true;
}
response.sendRedirect("/index");
return false;
}
2.在Springboot中注册拦截器,继承WebMvcConfigurer
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor())
// 拦截目录
.addPathPatterns("/**")
// 放行目录
.excludePathPatterns("/index","/user/login");
}
}
Thymeleaf
是一个用于web和独立环境的现代服务器端的java模板引擎。
既可以让美工在浏览器上直接查看页面的静态效果,也可以让程序员在服务器上查看带数据的动态页面效果