一、spring的基本注解
1、IOC:将new对象的权力交给spring,spring扫描到ApplicationContext.xml里面的bean标签就会将id作唯一,根据全路径限定名通过反射newInstans()方法把对象创建出来,并加载到spring容器中<bean id="propertyconf" class="com.cn.framework.util.SystemGlobals">
@Conponent 使用在类上用于实例化bean,演化语义明确的@Controller,@Service,@Repository
@Value(${ }) 普通属性注入
@Autowired 使用在字段上根据类型依赖注入,spring容器中只有一份
@Resource 按名称注入,同一字节码多个名称
@Scope("prototype") 或者 @Scope("singleton"), bean的作用范围
<!-- 自动扫描(自动注入) --> <context:component-scan base-package="com.cn.zrsf" />最后告诉spring在哪里扫描这些bean
新注解
@Configration 用户指定当前类是一个spring配置类,当创建容器时会从该类上加载注解
@ConponentScan spring启动时要扫描的包 和<context:component-scan base-package="com.cn.zrsf" />一样
@Bean("dataSource") spring会将当前方法的返回值以指定名称存储到spring容器中
@PropertySource 用于加载.properties文件中的配置
@Import({DataSourceConfiguration.class,}) 用于导入其他配置类,可数组形式
spring继承junit
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={SpringConfiguration.class})
@SpringBootTest(classes = HermesSsTestAppliction.class) @RunWith(SpringRunner.class)
2、AOP
事务的注解驱动<tx:annotation-driven transaction-manager="transactionManager">
关于具体 Spring Boot 提供了哪些 jar 包的依赖,我们可以查看本地 Maven 仓库下:
D:\maven\repository\org\springframework\boot\spring-boot-dependencies\2.1.5.RELEASE\spring-boot-dependencies-2.1.5.RELEASE.pom
二、springboot启动流程
springboot启动是通过@springbootapplication注解来实现的,首先这个注解是个复合注解,包括@springbootconfiguration,@componentscan,@enableautoconfiguration
AutoConfigurationImportSelector.class(自动配置导入选择器)-->selectImports(方法)-->getAutoConfigurationEntry(获取自动配置entry)-->
getCandidateConfigurations(获取候选配置)-->loadFactoryNames-->loadSpringFactories(加载spring工厂)-->
FACTORIES_RESOURCE_LOCATION(工厂资源位置)= "META-INF/spring.factories"
正在持续更新中。。。。。。。。