概述
Spring是一个轻量级的开源框架,由Rod Johnson开发,是一个非常强大的反转控制(IOC)框架,以帮助分离项目组件的依赖关系。目的是解决企业开发的复杂性
控制反转(IOC):降低组件、对象之间的耦合度
面向切面编程(AOP):一个程序中跨越多个点的功能被称为横切关注点,这些横切关注点在概念上独立于应用程序的业务逻辑。比如日志、声名式事物、安全性、缓存等。
spring的生命周期:
1、容器启动,在bean实例化之前实例化所有的BeanFactoyPostProcessor接口的类。
2、实例化剩下的bean,并对其进行依赖注入。
3、bean的正常使用。
4、调用DisposableBean接口的destory方法
5、调用Bean定义的destory方法
IOC容器
Bpring BeanFactory 容器
Spring ApplocationContext容器
环境配置
1、新建一个名叫HelloSpring的普通java工程
2、把Spring框架所需要依赖的jar包和日志jar包添加的Build Path -> Configure Build Path路径下
之后我们环境配置配好了。
创建源文件
1、在src目录下新建包com.tutorialspoint,在包com.tutorialspoint下新建HelloWorld.java和MainApp.java
2、在src创建一个Beans.xml
运行MainApp.java
结果如下
关于主要程序有以下两个要点需要注意:
-
第一步是我们使用框架 API ClassPathXmlApplicationContext() 来创建应用程序的上下文。这个 API 加载 beans 的配置文件并最终基于所提供的 API,它处理创建并初始化所有的对象,即在配置文件中提到的 beans。
- 第二步是使用已创建的上下文的 getBean() 方法来获得所需的 bean。这个方法使用 bean 的 ID 返回一个最终可以转换为实际对象的通用对象。一旦有了对象,你就可以使用这个对象调用任何类的方法。
Spring @Required 注释:@Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationException 异常。
Spring @Autowired 注释:@Autowired 注释来除去 setter 方法
Spring @Qualifier 注释:可能会有这样一种情况,当你创建多个具有相同类型的 bean 时,并且想要用一个属性只为它们其中的一个进行装配,在这种情况下,你可以使用 @Qualifier 注释和 @Autowired 注释通过指定哪一个真正的 bean 将会被装配来消除混乱。