1、Spring有两个核心接口:BeanFactory和ApplicationContext,推荐ApplicationContext,其中ApplicationContext是BeanFactory的子接口。他们都可以代表Spring容器。 ApplictionContext的实现类为FileSystemXmlApplicationContext和ClassPathXmlApplicationContext
2.BeanFactory与ApplicationContext实例化容器中的bean的时机不同,前者等到程序需要Bean实例才创建Bean
区分一下@Autowired和@Resource两个注解的区别:
1、@Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配
2、@Autowired是Spring的注解,@Resource是J2EE的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了
Spring属于第三方的,J2EE是Java自己的东西,因此,建议使用@Resource注解,以减少代码和Spring之间的耦合。
@Resource的装配顺序:
1、@Resource后面没有任何内容,默认通过name属性去匹配bean,找不到再按type去匹配
2、指定了name或者type则根据指定的类型去匹配bean
3、指定了name和type则根据指定的name和type去匹配bean,任何一个不匹配都将报错
6.BeanFactory与FactoryBean
实现 BeanFactory
接口的类表明此类事一个工厂,作用就是配置、新建、管理 各种Bean
而 实现 FactoryBean
的类表明此类也是一个Bean,类型为工厂Bean(Spring中共有两种bean,一种为普通bean,另一种则为工厂bean)。顾名思义,它也是用来管理Bean的,而它本身由spring管理,根据该Bean的ID从BeanFactory中获取的实际上是FactoryBean的getObject()返回的对象,而不是FactoryBean本身,如果要获取FactoryBean对象,请在id前面加一个&符号来获.
6.spring原理 6.26号
7.设计模式
8.spring中使用的设计模式
9.java8的新特性