- 浏览: 853842 次
文章分类
- 全部博客 (365)
- java (124)
- spring mvc (21)
- spring (22)
- struts2 (6)
- jquery (27)
- javascript (24)
- mybatis/ibatis (8)
- hibernate (7)
- compass (11)
- lucene (26)
- flex (0)
- actionscript (0)
- webservice (8)
- rabbitMQ/Socket (15)
- jsp/freemaker (5)
- 数据库 (27)
- 应用服务器 (21)
- Hadoop (1)
- PowerDesigner (3)
- EJB (0)
- JPA (0)
- PHP (2)
- C# (0)
- .NET (0)
- html (2)
- xml (5)
- android (7)
- flume (1)
- zookeeper (0)
- 证书加密 (2)
- maven (1)
- redis (2)
- cas (11)
最新评论
-
zuxianghuang:
通过pom上传报错 Artifact upload faile ...
nexus上传了jar包.通过maven引用当前jar,不能取得jar的依赖 -
流年末年:
百度网盘的挂了吧???
SSO单点登录系列3:cas-server端配置认证方式实践(数据源+自定义java类认证) -
953434367:
UfgovDBUtil 是什么类
Java发HTTP POST请求(内容为xml格式) -
smilease:
帮大忙了,非常感谢
freemaker自动生成源代码 -
syd505:
十分感谢作者无私的分享,仔细阅读后很多地方得以解惑。
Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
Life类
- package com.open.bean;
- import org.springframework.beans.BeansException;
- import org.springframework.beans.factory.BeanFactory;
- import org.springframework.beans.factory.BeanFactoryAware;
- import org.springframework.beans.factory.BeanNameAware;
- import org.springframework.beans.factory.DisposableBean;
- import org.springframework.beans.factory.InitializingBean;
- public class Life implements BeanFactoryAware, BeanNameAware,
- InitializingBean, DisposableBean {
- private String msg;
- public Life() {
- System.out.println("msg="+msg);
- System.out.println("构造函数");
- }
- public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
- System.out.println("setBeanFactory");
- }
- public void setBeanName(String name) {
- System.out.println("setBeanName");
- }
- public void init() {
- System.out.println("初始化");
- }
- public Object postProcessBeforeInitialization(Object bean, String beanName)
- throws BeansException {
- System.out.println("postProcessBeforeInitialization");
- return null;
- }
- public Object postProcessAfterInitialization(Object bean, String beanName)
- throws BeansException {
- System.out.println("postProcessAfterInitialization");
- return null;
- }
- public void afterPropertiesSet() throws Exception {
- System.out.println("afterPropertiesSet");
- }
- public void destroy() throws Exception {
- System.out.println("destroy");
- }
- public String getMsg() {
- return msg;
- }
- public void setMsg(String msg) {
- this.msg = msg;
- }
- }
package com.open.bean; import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware; import org.springframework.beans.factory.BeanNameAware; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; public class Life implements BeanFactoryAware, BeanNameAware, InitializingBean, DisposableBean { private String msg; public Life() { System.out.println("msg="+msg); System.out.println("构造函数"); } public void setBeanFactory(BeanFactory beanFactory) throws BeansException { System.out.println("setBeanFactory"); } public void setBeanName(String name) { System.out.println("setBeanName"); } public void init() { System.out.println("初始化"); } public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { System.out.println("postProcessBeforeInitialization"); return null; } public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { System.out.println("postProcessAfterInitialization"); return null; } public void afterPropertiesSet() throws Exception { System.out.println("afterPropertiesSet"); } public void destroy() throws Exception { System.out.println("destroy"); } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } }
BeanPostProcessorImp类
- package com.open.bean;
- import org.springframework.beans.BeansException;
- import org.springframework.beans.factory.config.BeanPostProcessor;
- public class BeanPostProcessorImp implements BeanPostProcessor {
- public Object postProcessBeforeInitialization(Object bean, String beanName)
- throws BeansException {
- System.out.println("postProcessBeforeInitialization");
- return bean;
- }
- public Object postProcessAfterInitialization(Object bean, String beanName)
- throws BeansException {
- System.out.println("postProcessAfterInitialization");
- return bean;
- }
- }
package com.open.bean; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; public class BeanPostProcessorImp implements BeanPostProcessor { public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { System.out.println("postProcessBeforeInitialization"); return bean; } public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { System.out.println("postProcessAfterInitialization"); return bean; } }
BeanCounter类
- package com.open.bean;
- import org.springframework.beans.BeansException;
- import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
- import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
- public class BeanCounter implements BeanFactoryPostProcessor {
- public void postProcessBeanFactory(
- ConfigurableListableBeanFactory beanFactory) throws BeansException {
- System.out.println("类的数量="+beanFactory.getBeanDefinitionCount());
- }
- }
package com.open.bean; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; public class BeanCounter implements BeanFactoryPostProcessor { public void postProcessBeanFactory( ConfigurableListableBeanFactory beanFactory) throws BeansException { System.out.println("类的数量="+beanFactory.getBeanDefinitionCount()); } }
bean.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
- "http://www.springframework.org/dtd/spring-beans.dtd">
- <beans>
- <bean id="life" name="life_name" class="com.open.bean.Life"
- init-method="init">
- <property name="msg" value="lifexxxx"/>
- </bean>
- <bean id="processor" class="com.open.bean.BeanPostProcessorImp"/>
- <bean id="counter" class="com.open.bean.BeanCounter"/>
- </beans>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="life" name="life_name" class="com.open.bean.Life" init-method="init"> <property name="msg" value="lifexxxx"/> </bean> <bean id="processor" class="com.open.bean.BeanPostProcessorImp"/> <bean id="counter" class="com.open.bean.BeanCounter"/> </beans>
测试类
- package com.open.bean;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- public class Test {
- public static void main(String[] args) {
- ClassPathXmlApplicationContext cx=
- new ClassPathXmlApplicationContext("bean.xml");
- Life life=(Life)cx.getBean("life");
- }
- }
package com.open.bean; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ClassPathXmlApplicationContext cx= new ClassPathXmlApplicationContext("bean.xml"); Life life=(Life)cx.getBean("life"); } }
输出结果
类的数量=3
msg=null
构造函数
setBeanName
setBeanFactory
postProcessBeforeInitialization
afterPropertiesSet
初始化
postProcessAfterInitialization
发表评论
-
Spring事务的传播行为和隔离级别
2015-01-23 09:15 604Spring事务的传播行为和隔离级别[transaction ... -
Spring3.2.8+Mybatis3.2.6+Maven 整合配置
2015-01-06 14:01 1442 -
采用AOP+log4j记录项目日志
2014-10-28 16:39 492关于AOP,我之前对AOP ... -
Spring Security3.1实践
2014-05-07 14:45 1015说明下: 本篇博客时间久远,数 ... -
SpringMVC3.0+MyIbatis3.0(分页示例)
2013-10-30 17:24 2226参考资料 1 ibatis2.x与mybatis ... -
网上的一篇spring security详解教程,觉得不错,转过来了
2013-07-30 22:16 1358先来谈一谈Acegi的基础知识,Acegi的架构比较复杂,但 ... -
Spring Security3配置使用
2013-07-30 16:48 3497使用Spring Security3的 ... -
SSH项目中加入spring security(二)--加入自定义数据表
2013-07-30 13:32 1027上一篇中基本的spring security已经加入到项 ... -
SSH项目中加入spring security(一)
2013-07-30 13:30 1579很久没有写过博客了,最近项目中 ... -
Spring定时任务的几种实现
2013-01-22 18:27 856近日项目开发中需要执行一些定时任务,比如需要在 ... -
spring security权限管理手册升级至spring security-3.1.3
2012-12-08 12:57 1966企业应用 费了半天劲,终于把原来基于spri ... -
在Spring、Hibernate中使用Ehcache缓存
2012-11-02 21:49 925前一篇http://www.blogjava.n ... -
不重复配置——利用Spring通用化配置
2012-10-17 09:40 982还记得 如下这种配置吗: 1、struts2作用域 ... -
Ehcache 整合Spring 使用页面、对象缓存
2012-10-16 09:44 790Ehcache在很多项目中都出现过,用法也比较简单。一般的 ... -
Spring AOP 中的通知
2012-09-16 13:32 12392010-08-29 16:54:18| ... -
Spring Security3十五日研究
2012-09-12 10:22 1957前言 南朝《述 ... -
spring2.5 的 security 权限验证
2012-09-09 08:12 940package com.hd.security.se ... -
Spring MVC和Struts2的区别
2012-09-08 08:59 10371. 机制:spring mvc的入口是servlet,而st ... -
跟我学spring3.0 电子书
2012-08-30 13:13 1233好东西 收藏!学习! -
Spring Bean Scope 有状态的Bean 无状态的Bean
2012-08-30 08:58 2490在Spring的Bean配置中 ...
相关推荐
Spring 中控制 2 个 bean 的初始化顺序 在 Spring 框架中,控制多个 bean 的初始化顺序是一个常见的问题。本篇文章将详细介绍如何控制 2 个 bean 的初始化顺序,提供了多种实现方式,并分析了每种方式的优缺。 ...
9. **Bean初始化**: 最后,`initializeBean(beanName, exposedObject, mbd)`对创建好的Bean进行初始化,包括调用初始化方法(如果有`@PostConstruct`注解的方法),以及执行AOP代理等操作。 整个流程中,Spring...
下面将详细介绍如何通过不同方式定义Spring Bean的初始化和销毁回调方法。 **初始化回调方法** 1. **@PostConstruct注解** 这个Java标准注解用于标记一个方法,该方法将在对象完全构造后但在业务逻辑执行前被调用...
Spring Bean 加载过程是 Spring 框架中最核心的部分之一,涉及到 ApplicationContext 的初始化、Bean 的加载和注册等过程。在 Spring Boot 应用程序中,SpringApplication 负责加载和管理 Bean。 SpringApplication...
但是,这并不总是可靠的,因为Spring通常会延迟初始化Bean,除非显式要求或存在依赖关系。 2. **依赖注入**:Spring容器会根据Bean之间的依赖关系来决定实例化顺序。如果一个Bean依赖于另一个Bean,那么被依赖的...
Spring Bean的初始化和销毁实例详解 Spring Bean的初始化和销毁是Spring框架中一个非常重要的概念,它们都是Bean生命周期中不可或缺的一部分。在Spring框架中,我们可以使用多种方式来控制Bean的初始化和销毁,以下...
7. **Bean初始化**: 实例化完成后,Spring会执行Bean的初始化方法,包括调用`@PostConstruct`注解的方法。同时,如果Bean实现了InitializingBean接口,其`afterPropertiesSet()`方法也会被调用。 8. **初始化后...
这个问题可能是由多种原因引起的,涉及到Spring的初始化过程和容器的行为。以下是对该问题的详细分析: 首先,我们需要理解Spring Bean的生命周期。在Spring容器初始化时,它会根据配置加载Bean的定义,并根据需要...
- **XML配置**:在传统的Spring应用中,Bean的定义通常写在XML配置文件中,如`springbean-xml`中的配置。 - **注解配置**:使用`@Component`,`@Service`,`@Repository`和`@Controller`注解标记类,配合`@...
一旦XML配置加载到Spring容器中,容器将根据配置创建Bean实例,并按照定义进行初始化、依赖注入,最后完成Bean的生命周期管理。 10. **实践操作**: 在实际开发中,我们可以使用Eclipse的Spring插件来简化Bean...
在Spring框架中,Bean的加载顺序是一个重要的概念,它涉及到Spring容器如何管理和初始化Bean的过程。在"spring的bean加载顺序样例项目"中,我们可以通过分析和实验来深入理解这一主题。下面将详细阐述Spring Bean的...
本文将深入探讨Spring容器中Bean的初始化过程。 首先,Spring容器根据XML配置文件(如`applicationContext.xml`)来解析Bean的定义。在示例中,我们定义了一个名为`people`的Bean,它对应于`People`类。默认情况下...
在本篇文章中,我们将深入探讨Spring源码中关于Bean初始化的过程,特别是`finishBeanFactoryInitialization()`方法和`preInstantiateSingletons()`方法。 首先,`finishBeanFactoryInitialization(Confi...
Spring bean 一般通过配置文件和注解进行加载,如果要实现jar或class...测试示例中是spring boot 的部分代码,动态加载的内容为接口实现类,且初始化时加载本地的实现类,动态加载后改为非程序加载目录中的jar实现类。
3. 加载 bean:Spring 会加载 bean,并将其实例化。 4. 获取 bean:应用程序可以从容器中获取 bean 并使用它。 在加载 bean 的过程中,Spring 会使用 Resource 对象来表示 XML 文件,然后使用 ...
此外,Spring提供了一种名为BeanPostProcessor的接口,它允许我们自定义Bean实例化和初始化过程中的逻辑。通过实现`postProcessBeforeInitialization()`和`postProcessAfterInitialization()`方法,可以在Bean初始化...
此外,Spring提供了BeanPostProcessor接口,允许我们在Bean初始化前后进行自定义处理。通过实现`postProcessBeforeInitialization()`和`postProcessAfterInitialization()`方法,可以在Bean实例化和初始化之后进行...
Spring Bean是Spring IoC容器管理的对象,这些对象的生命周期、依赖关系以及初始化行为由Spring容器控制。实例化Spring Bean的方式多种多样,包括XML配置、注解配置以及Java配置等。而工厂方法是其中一种自定义实例...
初始化后可访问Spring管理的Bean