* 1)如果将此类交给spring治理,请问默认spring何时创立此对象?你怎么晓得的? * 2)如果一个对象创立当前,存储到内存,长时间不必会有什么影响? * 3)你晓得Spring中,Bean对象的提早加载个性吗?(理解) * 4)你晓得什么场景下这个对象适宜提早加载吗?大对象,稀少用。 * 5)对象创立当前,利用完结要销毁对象吗? * 6)程序中的每个对象都有生命周期(正确),不见得每个对象都有生命周期办法。 */@Scope("prototype") //每次从spring容器获取对象都会创立一个新的实例//@Scope("singleton")//默认就是单例作用域(这个类的实例在一个spring容器中默认只有一份)//@Lazy(false)//默认为true//@Lazy(true)//此注解用于通知spring框架,它形容的类的实例,如果临时用不到,就不要先创立。//@Lazy(value=true)@Componentpublic class ObjectPool {    /**构建对象时会执行对象的构造函数*/    public ObjectPool() {       System.out.println("ObjectPool()");    }    /**@PostConstruct 注解形容的办法会在对象构建当前执行,用于执行一些初始化操作*/    @PostConstruct     public void init() {        System.out.println("init()");    }    /**@PreDestroy 注解形容的办法会在单例对象销毁之前执行,spring容器在销毁之前 * 会先将容器(Bean池)中的对象进行移除,在移除对象时,如果对象中定义了生命周期销 * 毁办法,此时还会调用对象的生命周期销毁办法(在这样的办法中能够做一些资源开释操 * 作)。 * */    @PreDestroy    public void close() {        System.out.println("close()");    }}
接口dao层级package com.cy.pj.common.cache;public interface Cache {}
service实现层package com.cy.pj.common.cache;import org.springframework.stereotype.Component;@Component //如果省略名字,则bean的名字默认为类名,而后首字母小写。//@Component("softCache")//@Component 注解形容bean时给bean起名字为softCachepublic class SoftCache implements Cache {//map.put("softCache",object instance)}
service实现层package com.cy.pj.common.cache;import org.springframework.stereotype.Component;@Componentpublic class WeakCache implements Cache{}