JAVA注解

@Component                  //标注一个普通的Spring Bean类
@Lazy                       //懒加载
@Scope("prototype")         //多例
public class ObjectPool{    //一个普通的对象池对象

    public ObjectPool(){
        System.out.println("==ObjectPool()==")
    }

    @PostConstruct          //此注解描述生命周期初始化方法,在构造方法执行之后执行,用于实现一些资源的初始化操作
    public void init(){
    System.out.println("==init()==");
    }

    @PreDestroy             //此注解描述生命周期销毁方法,在对象销毁之前执行。
    public void destory(){
        System.out.println("==destory==");
    }

}

@Autowired: 注解描述属性时,用于告诉spring框架,要为此属性注入一个值

 

 

Spring 管理bean对象,会为bean赋予什么特性?这些特性有什么好处?

 * 1)延迟加载(按需加载,懒加载)特性-暂缓对象的创建,何时需要何时创建?

 * a)优点:可以优化资源的使用。

 * b)缺点:用时在创建可能会导致响应速度降低。

 * c)场景:资源有限,大对象,稀少用能懒加载就懒加载。

 * d)实现:在需要懒加的对象类型上使用@Lazy注解进行描述

 

 * 2)作用域(Spring框架为对象提供的作用范围,对象的生命周期只能在指定范围有效)

 * a)优点:让对象在有效范围发挥作用,尽量控制对象的创建和销毁以保证对象的高效,低耗的运行。

 * b)缺点:框架底层设计难度会加大,应用不熟练会导致作用域冲突。

 * c)场景:不同业务,作用域的设计也不同?(例如 对象在整个项目中应用非常频繁可以考虑单例作用域。)

 * d)实现:在需要设定作用域的类上使用@Scope注解进行描述。

 * d.1)@Scope("singleton") 单例作用域,此作用域的对象在这个内存只有一份,通过

 *     共享设计(bean),实现对象的可重用性。此对象何时创建由懒加载(Lazy)特性

 *     设计决定,是否可以被销毁由spring框架决定(一般是在容器销毁时销毁)。适合

 *     频度应用比较高的对象。

 

 * d.2)@Scope("prototype") 多例作用域,此作用域的对象在需要时创建(与懒加载特性无关)

 *     每次从容器获取都是一个新的对象,且这些对象spring框架不负责销毁。适合应用频度比

 *     较低的对象。

 

 * 3)生命周期方法?(每个对象都有生命周期,但不见得每个对象都会设置生命周期方法)

 * a)如何理解生命周期方法?生命周期方法是在对象生命周期过程中要执行的一些方法。

 * b)设计生命周期方法的目的?对象生命周期的不同阶段执行不同业务(例如servlet init,service,destory)

 * c)Spring如何设计Bean对象生命周期方法?spring框架中使用相关注解对象对生命周期方法进行描述。

@Autowired是根据类型进行自动装配的。如果当spring上下文中存在不止一个UserDao类型的bean时,就会抛出BeanCreationException异常;如果Spring上下文中不存在UserDao类型的bean,也会抛出BeanCreationException异常。我们可以使用@Qualifier配合@Autowired来解决这些问题。

@Component
public class SearchService{
    private Cache chache;
    
    @Autowired
    public SearchService(@Qualifier("softCache") Cache cache){
        this.cache=cache;
        System.out.println("this.cache="+chache);
    }
}

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值