1、IOC的概念
1.1 含义:ioc控制反转,也就是将new对象的权力交给ioc容器,我们需要对象时,等待ioc给我们创建就可以了。
2、初始化bean方式 — xml
a、实例化bean: <bean>标签种进行实例化 ![](https://i-blog.csdnimg.cn/blog_migrate/744aa6cbb92c9c8af4840121004028fd.png)
b.依赖注入:通过构造方法和属性注入进行属性的注入
在<property>中进行注入 基本数据类型用value 引用类型采用ref
c. 获取bean对象:通过ApplicationContext获取容器对象,调.getbean获取对象,此时有三种获取方法,根据id获取,根据类型获取,根据类型和id获取
3、初始化bean的方式 — 半注解式
a.先在配置文件中表明要扫的包
b 实例化bean: 在对象类上标@conmpemt @service @controller @Repository
-
@Controller、@Service 、@Repository是@Component的衍生注解,功能同@Component
-
@Controller 用于Controller层的类 :表现层
-
@Service 用于Service层的类: 业务层
-
@Repository 用于Dao层的类: 持久层(一般不写)
c.依赖注入:@Autowired、@Qualifier、@Resource
@Autowired 按类型装配,一般生产中都使用它 不需要setter方法
@Qualifier 可以指定bean的id,一般用于有多个同一类型bean的场景(必须配合@Autowired使用)。
@Resource 相当于同时指定了@Autowired和@Qualifier,先根据name匹配,后根据type匹配。由Jdk提供的,需要引依赖,
d. 获取bean
4补充
1、bean的生命周期
实例化bean - 依赖注入 - init 初始化 -- 使用 -- destroy销毁方法(容器关闭时,单例会销毁,多例不会)
初始化 init 注解@PostConstruct
(初始化) 标签 init-methoe
销毁 destroy 注解@PreDestroy
(销毁)的方法 标签 destroy-method
2、bean的作用域
单例:singleton[重点]: 单例模式,全局唯一,只会实例化一次, 默认为单例模式
多例(原型):每次获取bean都会实例化一个新的对象
request:请求范围 (少)
session:http Session范围(少)
application:servletContext范围(少)
websocket: websocket访问(网络套接字) (少)
xml中 scope="singleton" 单例 =“prototype“ 多例
注解中 @scope="singleton" @scope= “prototype“ 多例