Spring中的常用注解详情

Spring中的常用注解详情

一:组件添加

  1. @Configuration:标注正在一个类上,表示告诉Spring这是一个配置类(配置类==配置文件)

  2. @Bean:标注在方法上,给容器注册一个Bean,类型默认方法名作为id,也可以使用Value属性指定id

  3. @ComponentScan:在配置类上面添加该注解,Value属性值为需要扫描的包名

  4. @Scope设置组件作用域

    /*

    ConfigurableBeanFactory#SCOPE_PROTOTYPE:多实例的,IOC容器启动并不会去调用方法创建对象放在容器中,每次获取的时候才会调用方法创建对象
    ConfigurableBeanFactory#SCOPE_SINGLETON:单实例的(默认值),IOC容器启动会调用方法创建对象放到ioc容器中,以后每次获取就是直接从容器中拿

    org.springframework.web.context.WebApplicationContext#SCOPE_REQUEST:同一次请求创建一个实例
    org.springframework.web.context.WebApplicationContext#SCOPE_SESSION:同一个session创建一个实例
    */

  5. @Lazy-bean懒加载:

    /*
    * 单实例bean:默认在容器启动的时候创建对象
    * 懒加载:容器启动不创建对象。第一次使用(获取)Bean创建对象,并初始化
    */

  6. @Import给容器中快速导入一个组件

    @Configuration
    //@Import导入组件,id默认是组件的全类名
    @Import(value = {Color.class, Red.class})

  7. 给容器中添加Bean的几种方式

    给容器中注册组件:
    1)、包扫描+组件标注注解(@Controller/@Service/@Repository/@Component)[自己写的类]
    2)、@Bean[导入的第三方包里面的组件]
    3)、@Import[快速给容器中导入一个组件]
    1)@Import(要导入到容器中的组件);容器中就会自动注册这个组件,id默认是全类名
    2)ImportSelector:返回需要导入的组件的全类名数组;
    3)ImportBeanDefinitionRegistrar:手动注册bean到容器中
    4)、使用Spring提供的 FactoryBean(工厂Bean)
    1)默认获取到的是工厂bean调用getObject创建的对象
    2)要获取工厂Bean本身,我们需要给id前面加一个&

二:Bean的生命周期 : Bean的生命周期:bean创建–>初始化–>销毁的过程

三:组件赋值:

  1. @Value:基本类型+string:

    public class Person {
    //使用@Value赋值
    //1、基本数值
    //2、可以写SpEL:#{}
    @Value(“张三”)
    private String name;
    @Value("#{20-2}")
    private Integer age;

  2. @PropertySource加载外部配置文件

    @Configuration
    //使用@PropertySource读取外部配置文件中的属性
    @PropertySource(value = {“classpath:/person.properties”})
    public class MainConfigOfPropertyValues {
    @Bean
    public Person person(){
    return new Person();
    }
    }

    1. 自动装配:Spring利用依赖注入(DI)完成对IOC容器中各个组件的依赖关系赋值

    @Autowired:自动注入
    1)默认优先按照类型去容器中找对应的组件:applicationContext.getBean(BookDao.class);找到就赋值
    2)如果找到多个相同类型的组件,再将属性的名称作为组件的id去容器中查找applicationContext.getBean(“bookDao”)
    3)@Qualifier(“bookDao”):使用@Qualifier指定需要装配的组件的id,而不是使用属性名
    4)自动装配默认一定要将属性赋值好,没有就会报错
    可以使用@Autowired(required=false)

  3. 读取配置类,配置文件

    @RunWith(SpringJUnit4ClassRunner.class) //开启spring的junit单元测试的注解支持
    @ContextConfiguration(classes = SpringConfiguration.class)//加载,读取注解的主配置文件
    @ContextConfiguration(locations = {"classpath*:/*.xml" )//读取xml文件
        classpath:只会到你的class路径中查找找文件。
    
    	classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找。
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值