自定义{name}-spring-boot-starter
2021-07-20 10:09:53
登录查看完整内容
仅限学习
举报
猜你喜欢
大纲/内容
Servlet+JSP
IOC
DI DL
AOP
applicationContext.xml
Spring MVC
<bean name=\"\" class=\"\"/>
1.X
@Required、@Repository@Aspect等注解
2.X
@Autowired @Qualifier @Primary@Component、@Service 组件声明@Controller、@RequestMappring等spring mvc的注解
2.5
@Configuration 去xml化 ,由于JDK5支持javaConfig
Component-Scan - @Service @Repository @Controller
Import
3.x
@Conditional
@Import
@ComponentScan
4.X
@Indexed
5.X
注解
Spring 特性
SSH(sping +struts/springMVC+ hibernate)
SSM(sping +springmvc+mybatis)| Dubbo +Spring
基于maven 的结构化规约(默认jar包,默认resource,等结构)
内置tomcat,resource/templete|static (spring boot-starter-web)
application.yml(properties)
通过 spring.profiles.active 属性
.EnableAutoConfiguration 默认对于依赖的 starter 进行自动装载
约定优于配置
AutoConfiguration
注入XXXTemplate
开箱即用
importSlectorRegistrar(ImportBeanDefinitionRegistrar)@Configuration@ComponentScan
目录结构一致
文件名一致
key要存在且符合当前的加载
JDBC
Dubbo
举例
spring.factories
spring-autoconfigure-metadata.properties
SPI
自动装配
注解 方式一 @ConditionOnBean
约定的文件 方式二 META-INF/spring-autoconfigure-metadata.properties
@ConditionalOnBean 在存在某个 bean 的时候@ConditionalOnMissingBean 不存在某个 bean 的时候@ConditionalOnClass 当前 classpath 可以找到某个类型的类时@ConditionalOnMissingClass 当前 classpath 不可以找到某个类型的类时@ConditionalOnResource 当前 classpath 是否存在某个资源文件@ConditionalOnProperty 当前 jvm 是否包含某个系统属性为某个值@ConditionalOnWebApplication 当前 spring context 是否是 web 应用程序
条件装配
什么是starter
Starter
Actuator
Spring Boot CLI
比spring新增的特性
@EnableScheduling
@EnableCaching
@Enable spring3.1
Registrar
@Import({Registrar.class})
@AutoConfigurationPackage
元数据META-INF/spring-autoconfigure-metadata.properties
条件注入 ConditionalOnClass
AutoConfigurationMetadataLoader.loadMetadata()
this.getAutoConfigurationMetadata()
AutoConfigurationImportSelector.selectImports()
this.getAutoConfigurationEntry(annotationMetadata)
AutoConfigurationImportSelector.selectImports(AnnotationMetadata annotationMetadata)
@Import({AutoConfigurationImportSelector.class})
@EnableAutoConfiguration
@Component
@Service
@Repository
@Controller
等价于@Component
相当于applicationContext.xml文件
基于java开始支持javaConfig
理解
@Configuration
@SpringBootApplication
微服务 Spring Boot
Spring Cloud Netflix | Spring Cloud Alibaba
Spring
微服务发展历程
基础回顾
命名 {name}-spring-boot-starter
EnableAutoConfiguration
实现
dubbo-spring-boot-starter
非spring官方starter组件
命名 spring-boot-starter-{name}
比较特殊 spring-boot-autoconfigure-2.1.6.RELEASE.jar官方内置了
spring-boot-starter-redis
spring-boot-starter-web
spring-boot-starter-jdbc
spring-boot-starter-test
官方spring starter组件
常见的starter组件分析
简单demo展示
真实starter展示
自定义starter组件
自定义{name}-spring-boot-starter
0 条评论
回复 删除
下一页
职业:本科
作者其他创作:
数据库设计
564 2022-09-14
自定义{name}-spring-boot-starter
285 2021-07-20
tm 系统架构
207 2021-06-22