上海自助建站汕头seo专家
- 作者: 五速梦信息网
- 时间: 2026年03月21日 09:22
当前位置: 首页 > news >正文
上海自助建站,汕头seo专家,wordpress外链转內链,正能量网址能直接用的Spring中的Bean: 4.Bean的生命周期5.Bean的配装配式 ( 添加Bean到IOC容器的方式 依赖注入的方式 )5.1 基于XML的配置5.2 基于Annotation (注解) 的装配 (更常用#xff09;5.3 自动装配 4.Bean的生命周期 Spring容器可以管理 singleton作用域的Bean的生命周期#xff0c;在此… Spring中的Bean: 4.Bean的生命周期5.Bean的配装配式 ( 添加Bean到IOC容器的方式 依赖注入的方式 )5.1 基于XML的配置5.2 基于Annotation (注解) 的装配 (更常用5.3 自动装配 4.Bean的生命周期 Spring容器可以管理 singleton作用域的Bean的生命周期在此作用域下Spring能够精确地知道该Bean 何时被创建何时初始化完成以及何时被销毁。 对于 prototype作用域的BeanSpring只负责创建当容器创建了Bean实例后Bean的实例就交给客户端代码来管理Spring容器将不再跟踪其生命周期。每次客户端请求prototype 作用域的Bean时Spring 容器都会创建一个新的实例并且不会管那些被配置成prototype作用域的Bean的生命周期。 了解Bean的生命周期的意义就在于可以在某个Bean生命周期的某些指定时刻完成一些相关操作。这种时刻可能有很多但在一般情况下常会在Bean的postinitiation (初始化后)和predestruction (销毁前)执行一些相关操作。 在Spring中Bean生命周期的执行是一个很复杂的过程读者可以利用Spring提供的法来定制Bean的创建过程。当一个Bean被加载到Spring容器时它就具有了生命而Spring容器在保证一个Bean能够使用之前会做很多工作。Spring 容器中。 Bean 的生命周期流程 ( Bean的生命周期图 )如下图所示 在上图 (Bean的生命周期图)中Bean的生命周期的整个执行过程描述如下。 ①根据配置情况调用Bean构造方法或工厂方法实例化Bean。 ②利用依赖注入完成Bean中所有属性值的配置注入。 ③如果Bean实现了BeanNameAware接口则Spring调用Bean的 setBeanName() 方法传入当前Bean的id值。 ④如果Bean实现了 BeanFactoryAware 接口则Spring调用 setBeanFactory()方法传入当前工厂实例的引用。 ⑤如果Bean实现了 ApplicationContextAware 接口则Spring调用 setApplicationContext() 方法传入当前 ApplicationContext实例的引用。 ⑥如果 BeanPostProcessor 和Bean 关联则Spring 将调用该接口的预初始化方法postProcessBeforelnitialzation() 对Bean进行加工操作这个非常重要Spring 的AOP就是⑪⑫ 它实现的。 ⑦如果Bean实现了lnitiializingBean接口则Spring将调用 afterPropertiesSet() 方法。 ⑧如果在配置文件中通过init-method 属性指定了初始化方法则调用该初始化方法。 ⑨如果有BeanPostProcessor 和 Bean关联则Spring将调用该接口的初始化方法 postProcessAfterinitialization() 此时Bean 已经可以被应用系统使用了。 ⑩如果在 bean 中指定了该Bean的作用范围为scope“singleton”则将该Bean放入Spring loC的缓存池中将触发Spring对该Bean的生命周期管理如果在 bean 中指定了该Bean的作用范围为 scope prototype则将该Bean交给调用者调用者管理该Bean的生命周期Spring 不再管理该Bean。 ⑪如果Bean实现了DisposableBean接口则Spring会调用destroy()方法将Spring中的Bean销毁 如果在配置文件中通过destory-method属性指定了Bean 的销毁方法则Spring将调用该方法进行销毁。 Spring为Bean提供了细致全面的生命周期过程通过实现特定的接口或通过bean的属性设置都可以对Bean的生命周期过程产生影响。可以随意地配置bean的属性但是建议不要过多地使用Bean实现接口因为这样会使代码和Spring聚合比较紧密。 5.Bean的配装配式 ( 添加Bean到IOC容器的方式 依赖注入的方式 ) Bean的装配方式 : 添加Bean到IOC容器的方式 依赖注入的方式。Spring容器支持多种形式的Bean的装配方式如 基于XML的装配、基于注解( Annotation )的装配 和 自动装配 等。(其中最常用的是基于注解的装配)。下面的内容主讲的是 基于注解的装配。 5.1 基于XML的配置 Spring提供了两种基于XML的装配方式 : 设值注入( Setter Injection) 和 构造注入 (Constructor Injection)。 设值注入的方式更为常用 通过在被调用者中 添加 “被调用者”的属性 设置set方法为该属性赋值 最后结合xml文件中的 “property标签” 的方式来 添加Bean到IOC容器中同时实现Bean的注入 (依赖注入)。 5.2 基于Annotation (注解) 的装配 (更常用 在Spring中尽管使用XIML配置文件可以实现Bean的装配工作但如果应用中有很多时会导致XML配置文件过于臃肿给后续的维护和升级工作带来一定的困难。 为此Spring提供了对 Annotation (注解)技术的全面支持。通过添加注解的方式就能将Java对象添加到IOC容器中作为Bean 通过注解的方式就能实现依赖注入 Spring中定义了一系列的注解常用的注解 如下所示。 Component注解 : 可以使用此注解描述Spring中的Bean但它是一 个泛化的概念仅仅表示一个组件( Bean )可以作用在任何层次。使用时只需将该注解标注在相应类上即可。Repository注解 用于将数据访问层 (DAO层) 的类标识为Spring 中的Bean其功能与Component相同。Service注解 通常作用在业务层( Service层 )用于将业务层的类标识为Spring中的Bean其功能与Component相同。Contoller注解 通常作用在控制层 (如Spring MVC的Controller )用于将控制层的类标识为Spring中的Bean其功能与Component相同。Autowired注解 用于对Bean的属性变量、属性的setter方法及构造方法进行标注配合相应应的注解处理器完成Bean的自动配置工作。默认按照Bean的类型进行装配。Resource注解 其作用与Autowired一样。其区别在于Autowired 默认按照Bean类配而Resource默认按照Bean 实例名称进行装配。 Resource 中有两个重要属性: name 和 type。Spring将name属性解析为Bean实例名称type 属性解析为Bean实例类型。如果指定name属性则按实例名称进行装配如果指定type属性则按Bean类型进行装配。 如果都不指定则先按Bean实例名称装配如果不能匹配再按照Bean类型进行装配 如无法匹配则抛出NoSuchBeanDefinitionException异常。Qualfier注解 与Autowired 注解配合使用会将默认的按Bean类型装配修改为按Bean的实例名称装配Bean 的实例名称由Qualifier注解的参数指定。 在上面几个注解中虽然Repositoy、 Service 、Controller功能与Component的功能相同但为了使标注类本身用途更加清晰建议在实际开发中使用Repositoy、Service 和 Controller分别对实现类进行标注。 5.3 自动装配 虽然使用注解的方式装配Bean在一定程度上减少了配置文件中的代码量但是也有企业项目中是没有使用注解方式开发 ( 部分企业使用xml配置的方式来装配Bean )的那么有没有什么办法既可以减少代码量又能够实现Bean的装配呢 此时可以用Spring中的bean元素中的autowire属性可以通过设置autowire的属性值来自动装配Bean。所谓自动装配就是将一个Bean自动地注入到其他的Property中 此时可以用Spring中的bean元素中的autowire属性可以通过设置autowire的属性值来自动装配Bean。所谓自动装配就是将一个Bean自动地注入到其他的Property中后通过各自类中的set方法实现依赖注入以此实现自动装配。 autowire属性有5个值如下表所知。 属性值说明default (默认值)由bean的上级标签beans的default-autowire属性值确定。例如beans default-autowire“byName”则该 元素中的autowire属性对应的属性值就为byName。byName根据属性的名称自动装配。容器将根据名称查找与属性完全一致的 Bean,并将其属性自动装配。byType根据属性的数据类型(Type)自动装配如果一个Bean的数据类型兼容另一个Bean中属性的数据类型则自动装配。constructor根据构造函数参数的数据类型进行byType模式的自动装配。no在默认情况下不使用自动装配Bean 依赖必须通过ref元素定义。
相关文章
-
上海自贸区公司注册重庆整合网络营销之整站优化
上海自贸区公司注册重庆整合网络营销之整站优化
- 技术栈
- 2026年03月21日
-
上海装修公司做网站怎么做lol网站
上海装修公司做网站怎么做lol网站
- 技术栈
- 2026年03月21日
-
上海专业微信网站开发公司网片焊接
上海专业微信网站开发公司网片焊接
- 技术栈
- 2026年03月21日
-
上海最专业的网站设计制网站建设前期需要做出的准备
上海最专业的网站设计制网站建设前期需要做出的准备
- 技术栈
- 2026年03月21日
-
上海做兼职的网站东莞家具饰品东莞网站建设
上海做兼职的网站东莞家具饰品东莞网站建设
- 技术栈
- 2026年03月21日
-
上海做兼职的网站网站建设创意广告
上海做兼职的网站网站建设创意广告
- 技术栈
- 2026年03月21日
