spring注解驱动开发

spring注解驱动开发

容器

AnnotationConfigApplicationContext
	配置类
	包扫描
组件添加
	@ComponentScan
	@Bean
		指定初始化销毁
		初始化其他方式
			InitializingBean(初始化设置值之后)
			DisposableBean(销毁)
			JSR250
				@PostConstruct
				@PreDestroy
		BeanPostProcessor
	@Configuration
	@Component
	@Service
	@Controller
	@Repository
	@Conditional
	@Primary
	@Lazy
	@Scope
	@Import
	ImportSelector
	工厂模式
		FactoryBean
			&beanName获取Factory本身

组件赋值

	@Value
	@Autowired
		@Qualifier
		其他方式
			@Resources(JSR250)
			@Inject(JSR330,需要导入javax.inject)
	@PropertySource
	@PropertySources
	@Profile
		Environment
		-Dspring.profiles.active=test

组件注入

	方法参数
	构造器注入
	ApplicationContextAware
		ApplicationContextAwareProcessor
	xxxAware
AOP
	@EnableAspectJAutoProxy
	@Before/@After/@AfterReturning/@AfterThrowing/@Around
	@Pointcut
声明式事务
	@EnableTransactionManagement
	@Transactional

扩展原理

BeanFactoryPostProcessor
	Spring容器标准初始化之后执行(BeanPostProcessor之前),此时bean还未创建
	Spring容器初始化两大步
		1、加载保存和读取所有bean配置
		2、按照之前的配置创建bean
BeanDefinitionRegistryPostProcessor
	BeanFactoryPostProcessor子类,可自定义添加bean定义
	BeanDefinetionRegistry
		BeanDefinetionBuilder
ApplicationListener
	@EventListener
Spring容器创建过程

web

servlet3.0
	ServletContainerInitializer
	Registration
		ServletRegistration
		FilterRegistration
	ServletContext
异步请求
	servlet3.0异步处理
	返回Callable
	返回DeferredResult

大纲图示

全部评论

相关推荐

找不到工作死了算了:没事的,雨英,hr肯主动告知结果已经超越大部分hr了
点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务