0.spring中定义过滤器,拦截器,Servlet,经常需要经常的类和实现的方法。
1. 什么是SpringBoot
Spring是为了简化Java,Springboot是为了简化Spring;
所以SpringBoot是基于Spring的更快,更容易集成其他功能的微服务框架;
它提倡开箱即用,默认大于配置的规范,使我们能尽快专注于业务;
避免maven的导入和jar的冲突。
2.SpringBoot的核心注解以及理解
SpringBoot的核心注解是@SpringBootApplication,主要包含了以下三个注解:
1.SpringBootConfig:组合@Configuration,实现配置文件;
2.EnableAutoConfiguration:条件注解,开启、关闭模块;
3.ComponentScan:Spring扫描注解,注册Bean;
3.SpringBoot其他常用的注解
@Configuration @Compoent @Bean @ControllerAdice
4.SpringBoot自动配置原理
@EnableAutoConfiguration,
@Configuration
@ConditionalOnClass
就是核心配置注解
@EnableAutoConfiguration导入META-INF/spring.factories里的自动配置类,刷选有效的配置类;
@Configuration:
@ConditionalOnClass:
5. SpringBoot的配置加载顺序
properties->YAML->系统环境变量->命令行参数.....
6.bootstrap和application的区别
bootstrap在单独的SpringBoot中不经常用到,但在SpringCloud中经常遇到;
bootstrap比application优先加载;
bootstrap是由父ApplicationContext加载的;application是由Applciation加载的;
7.解决跨域问题
1.跨域的配置
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowCredentials(true)
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.maxAge(3600);
}
}
2.前后端分离时,在filter中添加跨域配置
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
corsConfiguration.setAllowCredentials(true);
UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(urlBasedCorsConfigurationSource);
}
}
3.SpringBoot中的Starter是什么
首先它提供了一个自动化配置类,一般命名为 XXXAutoConfiguration ,
在这个配置类中通过条件注解来决定一个配置是否生效
(条件注解就是 Spring中原本就有的),然后它还会提供一系列的默认配置,
也允许开发者根据实际情况自定义相关配置,
然后通过类型安全的属性注入将这些配置属性注入进来,新注入的属性会代替掉
默认属性。正因为如此,很多第三方框架,我们只需要引入依赖就可以直接使用了。
当然,开发者也可以自定义Starter。