前言
spring的核心机制依赖注入/控制反转,改变了传统的编程模式,使得对组件的实例化不再由应用程序完成,而是转交给spring容器来完成,需要时注入到程序中,从而将组件之间的关系进行了解耦。这些则是离不开spring中的bean的。
spring IOC容器
-
1.springIOC容器的作用:容纳我们所开发的各种bean
-
2.如何获取IOC容器中的bean:通过ApplicationContext
ApplicationContext常用的三个实现类
- ClassPathXmlApplicationContext:从类路径寻找指定的xml文件并装载
- FileSystemXmlApplicationContext:以自定义路径的方式寻找xml文件并装载(不常用)
- XmlWebApplicationContext:从web系统中的xml文件载入bean(ssm整合时再详细说明)
Bean 的作用域
在此只介绍两个常用的作用域,还有几个web作用域,日后整合再做说明
- 1.singleton:单实例作用域,特点为可共享,常用与无会话状态的bean,如:dao组件、业务逻辑组件
- 2.prototype:原型模式作用域,特点为每次bean请求都创建一个新的bean,常用与需要保持会话状态的bean
- 3.使用方式
<bean id=" " class=" " scope="singleton/prototype"></bean>
常用的几个注解
使用xml文件可以进行bean的装配工作,若bean的数量较多就会导致xml文件过于臃肿,而注解的出现则使spring项目更加趋向于 “零配件”。
使用时需要添加spring-aop-4.0.0.RELEASE.jar包,并在spring配置文件中添加命名空间,开启自动扫描包的配置。
- @Component:仅表示一个组件bean可以用于任何层次
- @Repository:用于数据访问层(dao层),将dao层的类标识为spring中的bean
- @Service:用于业务层(service层),将service层的类表示为spring中的bean
- @Controller:用于控制层(如springMVC中的controller层),将控制层的类标识为spring中的bean
- @Autowired:用于对bean的属性变量,装配具有兼容类型的单个bean属性可以加在构造器、普通字段、以及所有有参数的方法上