1、Spring Boot是什么
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架采用“习惯优于配置”的方式开发,可以快速构建Spring应用。
SpringBoot让Spring的开发变得更简单、快速。它内嵌了服务器,Spring 容器中预装配了大量的第三方组件,完全抛弃了XML配置。也就是说Springboot并不是什么新技术,而是让spring项目开发更加自动化
2、Springboot做了什么自动化操作?
1、Springboot规范优于配置,也就是遵循规范就少写配置。
2、Springboot内嵌服务器,所以可以直接把项目打成jar包不再必须打成war包。
3、Springboot预装载大量三方组件,也就是这些组件已经存在于spring容器中,要使用时只需要在自己的类中注入即可,当然需要在maven仓库中找到这些组件jar包。
4、抛弃了XML,给予Springboot的指令放在配置类或application.yml(properties)中。
3、Springboot运行步骤
1、在application.yml中配置必要指令,这些指令一般是全局指令。比如连接数据库的用户名密码、内嵌tomcat的端口号等,后面将给出具体配置。
2、在Main方法中执行SpringApplication.run()启动springboot,加@SpringBootApplication 注解标注为入口。
3、Springboot会自动扫描Main方法所在类的同级和下级包,可以加@ComponentScan(包),扫描任意包。
4、配置类可以实现WebMvcConfigurer接口,它已经写好常用的配置接口。
5、如果不实现WebMvcConfigurer接口可以加@Configuration注解标注为配置类,只要被springboot扫描到就会自动加载配置。
4、配置类的常用配置
1、@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理
2、RestTemplet对象可以实现HTTP客户端请求(封装的是Apache -httpclient)
1)GET:
EmployeeListVO result = restTemplate.getForObject(uri, EmployeeListVO.class);
final String uri = "http://localhost:8080/springrestexample/employees/{id}";
Map<String, String> params = new HashMap<String, String>();
params.put("id", "1");
EmployeeVO result = restTemplate.getForObject(uri, EmployeeVO.class, params);
2)POST:
final String uri = "http://localhost:8080/springrestexample/employees";
EmployeeVO newEmployee = new EmployeeVO(-1, "Adam", "Gilly", "test@email.com");
EmployeeVO result = restTemplate.postForObject( uri, newEmployee, EmployeeVO.class);
3、跨域访问
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") //运行所有请求地址
.allowedOrigins("*") //允许所有域名
.allowedHeaders("*")//允许所有头
.allowedMethods("*");//允许所有方法
// /** ->1个或多个地址 *->1个或多个字符串}
4、资源放行
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//放行static下所有资源
registry.addResourceHandler("/static/**")
//本地static下的所有资源}
.addResourceLocations("classpath:/static/");
5、拦截器
// 拦截器
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor())
//拦截所有
.addPathPatterns("/**")
//放行资源
.excludePathPatterns("/gotoAddUser","/static/**");
}
6、application 配置文件
注意:springboot除了application还有bootstrap配置文件,bootstrap用于上下文的引导,一般配置固定不变或需要在启动springboot的时候就执行的命令。如:cloud中config组件的加载就需要放在bootstrap中。
application.properties示例
# 端口号
server.port=8080
# true开启调试模式,日志模式降为debug级别 默认false不开启
debug=true
# 应用上下文
server.servlet.context-path=/SpringBootDemo
# 默认字符集编码
spring.http.encoding.charset=UTF-8