Spring课程
1.在bean的xml配置文件中,如果希望一个class指向一个内部类,可以使用$符号;
例如:com.qunar.campus.UserServiceImpl$FindService,表示UserServiceImpl的内部类FindService;
2.<scope>标签的含义,常用的有
singleton: 表示该类的实例化,在同一个Spring Ioc容器中只有一个,其它地方再次实例化该类,获得到的是同一个对象.类似于单例模式
prototype: 表示该类的实例化在一个Spring Ioc容器中可以是多个.其它地方每次实例化该类,得到的都不是同一个类;
注意:
当A(单例)依赖B(非单例), B依赖C(非单例)时,在整个实例化的链条中会使得A,B,C都成为单例存在一份.当然这里说的存在一份只是说A只有一份,A中的B和C只存在一份.当单单只实例化一个B或C时,B,C可以是多个的.
非单例在实际的使用场景下比较少。我们往往使用单例模式。这就要求Bean对象严格的线程安全。
3.@Resource标签的匹配顺序:优先匹配名字(name/id),其次匹配类型。
4.Sping中的callback有init和destroy等.init是在一个类被实例化以后,调用的方法.destroy是在一个对象被销毁以前所调用的方法.
定义init和destroy callback方法有三种方式:
(1)定义该类时实现InitializingBean和DisposableBean接口.分别重写afterPropertiesSet()和destroy()方法;
(2)定义该类时,利用注解@ PostConstruct 和 @ PreDestroy标记相应的方法;
(3)在bean的xml配置中利用init-method和destroy-method指定相应的方法名;
注意:
当这三种方式全部实现时,它们的调用顺序为(2)(1)(3)