@Autowried
作用:自动导入依赖的bean
将配置好的bean拿来使用,完成属性,方法的组装,该注解可以针对类成员变量,方法以及构造函数进行标注,完成自动装配的工作
如果再加上(required = false)时,找不到bean的时候也不会报错。
@Column :
作用:用来标识实体类和数据库的对应关系.一共包含十个属性.解释如下:
@Component
作用:将普通的pojo实例化到spring容器中,相对于配置文件中< bean id ="" class = “”/>
注意:@component 可以通过实现CommandLineRunner接口来在程序执行后紧跟着实现一些基础功能.
@ComponentScna:
组件可以发现和装配一些Bean.主要就是定义扫描路径从中找出标识了需要装配的类自动装配到spring 的容器中.
总结如下:
自定义扫描路径下边带有@Controller,@Service,@Repository,@Component 注解加入spring容器.
通过 includeFilters加入扫描路径下没有以上注解的类加入spring容器.
通过excluderFilters过滤出不用加入spring容器的类.
自定义增加了@Component注解的注解方式.
@Conditional
这是Spring4.0添加的新注解,用来标识一个Spring Bean 或者Configuration配置文件,当满足指定条件才开启配置.
首先定义自己的判断类实现接口Condition
public class MyCondition implements Condition{
@Override
public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
Environment env = conditionContext.getEnvironment();
String property = env.getProperty(“os.name”);
System.out.println(“系统为>>>>>>”+property);
if(property.contains(“Linux”)){
return true;
}else {
return false;
}
}
}
使用
@Component
public class GetUser {
@Conditional(MyCondition.class)
@Bean(value = "user")
public User getuserrrrr(){
System.out.println("这里创建了用户>>>>>:");
return new User("lxq",22);
}
}
测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Autowired
ApplicationContext context;
@Test
public void contextLoads() {
Arrays.stream(context.getBeanDefinitionNames()).forEach(System.out::println);
}
}
结果
只有在LInux系统下运行才会在spring 容器中创建user类.在windows系统下不会创建user类.