Spring之Bean管理

您所在的位置:网站首页 什么是自然数包括0吗 Spring之Bean管理

Spring之Bean管理

2023-07-16 19:31| 来源: 网络整理| 查看: 265

文章目录 什么是Spring Bean?Bean管理的方式基于xml配置方式注解方式以上两种方式对比 依赖注入

什么是Spring Bean?

由Spring框架创建并管理的对象称为bean对象,bean是一个由Spring IoC容器实例化、组装和管理的对象。

Bean管理的方式

Spring的基本Bean管理包括Bean配置,Bean实例化,Bean的依赖注入。

基于xml配置方式

在spring框架xml配置文件中,配置并管理bean对象。 bean标签中属性介绍: ●id:bean的唯一标识符; ●name:bean对象的别名,可以为多个; ●class:bean的实现类的全类名; ●scope:设置bean实例的作用域,该属性有两个值: ①scope=“singleton” 默认值 ,单例的,在整个应用程序中只创建一个对象,在spring框架启动时就创建好了; ②scope=“prototype” 原型的 每次获取时创建一个对象 可以创建多个。 ●property:bean标签的子标签,用于调用实体类中的setter()方法完成属性赋值; ●constructor-arg:bean标签的子标签,可以使用该标签传入构造参数进行实例化; ●value:用于直接给定一个常量; ●ref:用于指定某个bean实例的引用;

注解方式

1.使用注解前的配置: ①导入注解所需要的jar包; Spring的注解功能封装在aop包中,我们只需要导入Spring aop jar包即可,由于新版Spring jar包自动导入,此处我们无需再手动导入。 ②开启注解扫描; 在spring配置文件中开启注解扫描:

2.注解标签介绍: ①@Component,一般用于模型类;

import org.springframework.stereotype.Component; // @Component(value = "admin") public class Admin { ...... }

②@Service,一般用于service类;

import org.springframework.stereotype.Service; // @Service(value = "adminService") public class AdminService { ...... }

③@Repository,一般用于dao层;

import org.springframework.stereotype.Repository; // @Repository(value = "adminDao") public class AdminDao { ...... }

④@Scope,标注bean的作用域; ⑤@Autowired,spring框架提供的一个自动注入注解标签,如果写在字段上年,就不需要再写setter方法。默认情况下要求依赖对象必须存在,如果允许null值,可以设置required=false。

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service(value = "adminService") public class AdminService { @Autowired AdminDao adminDao;//依赖注入 ...... }

那么该标签是如何去查找需要注入的对象呢? 有两种查找方式: 1.byType : 在spring容器中根据类型查找; 2.byName : 通过名称查找 ,需要结合 @Qualifier(value=“名称”),value 属性用于指定要匹配的 Bean 的 id 值。 ⑥@Resource 该注解标签功能与@Autowired相同: 1.byType :@Resource; 2.byName :@Resource(name=" "),name用于指定要匹配的 Bean 的 id 值。 但是该标签是JDK中的,Spring提供了对jdk 中@Resource 注解的支持。

以上两种方式对比

1.xml方式: 优点:配置和代码是分离的,在xml文件中做修改,无需编译代码,只需重启服务器即可将新的配置加载; 缺点:编写麻烦,效率低,大型项目过于复杂。 2.注解方式: 优点:方便,直观,高效,代码少; 缺点:以硬编码的方式写入到java代码中,修改是需要重新编译代码的。

依赖注入

在Spring创建对象时,还需要给对象的属性进行初始化赋值,这个过程称为依赖注入(DI Dependency Injection)。所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。 依赖注入的方式: 1.构造器方法注入: 在bean标签内部使用 constructor-arg标签注入的方式。

2.set方法注入: 必须要有一个无参的构造方法,否则只能用构造方法构造。 在bean标签内部使用 constructor-arg标签注入的方式。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3