获取Spring管理的Bean】的更多相关文章

描述: 在Servlet中调用Spring管理的接口,可以使Dao/Service/ServiceImpl. 前提是在调用的bean中有注解: @Repository("beanName")------------Dao 或者 @Resource("beanName")-----------------Service     代码: private TestDao testDao; //获取ServletContext 再获取 WebApplicationConte…
转载自:https://my.oschina.net/skyline520/blog/181158?fromerr=GjtR6Wec spring xml中定义 <!--spring 工具类--> <bean id="springContextUtil" class="com.skyline.pub.utils.SpringContextUtil"/> SpringContextUtil的代码如下 package com.skyline.pu…
//从spring容易中获取bean public static Object getBean(String beanName){ ApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); return context.getBean(beanName); } //获取ServletContext public static ServletContext getServletContext(){ W…
1.再Spring配置文件中配置工具类 <!-- 用于持有ApplicationContext,可以使用SpringContextHolder.getBean('xxxx')的静态方法得到spring bean对象 --> <bean class="com.xxxxx.SpringContextHolder" lazy-init="false" /> 2.编写java工具类 import org.springframework.context…
1.在项目中添加下面的类: import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; /** * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext. * */ public class SpringContextHolder implem…
WebApplicationContext wac = (WebApplicationContext)config.getServletContext().getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE); dealerArticleService = (DealerArticleService) wac.getBean("dealerArticleService");…
BeanFactory接口 Interface BeanFactory getBean <T> T getBean(String name, Class<T> requiredType) throws BeansException上面是Apring的bean工厂的接口(顾名思议 拿到Spring的Bean) 下面看它的一个实现类 ClassPathXmlApplicationContext(BeanFactory接口的一个实现类) public ClassPathXmlApplic…
新建的线程类NewThread,在这个类中国使用Spring的注解获取Service,为null 网上已有这种问题的解决方案,但是为何在新线程中使用注解获取不到Spring管理的Bean? 问了老大,一句话点破:new出来的线程,脱离了Spring的容器 PS:理解了一句话 ,Spring是最大的工厂模式 验证 线程有可能是因为native方法的原因,我不new 线程了,new一个别的对象,debug看看是否不能使用注解. 新建Test 类 public class Test { @Resour…
   在netty handler开发中,我们无法将spring的依赖注入到Handler中,无法进行数据库的操作,这时候我们就需要手动获取被spring管理的bean对象:    创建一个  implements ApplicationContextAware 接口的类,实现它的setApplicationContext 方法,这样我们就可以获取spring的上下文对象,获取Bean;该类需要在spring中注册: 代码附上: package com.project; import org.s…
http://blog.csdn.net/yerenyuan_pku/article/details/52834011 bean的初始化时机 前面讲解了Spring容器管理的bean的作用域.接着我们就要思考一个问题:bean到底是在什么时候才进行实例化的呢?我们以这个问题为引子来展开本文的说明. bean对象无外乎是在以下两个时刻进行实例化的: 调用getBean()方法时. Spring容器启动时. 那么bean对象到底是在哪个时刻进行实例化的,这与Bean的作用域有着某种联系.我们以配置S…
http://blog.csdn.net/yerenyuan_pku/article/details/52833477 Spring管理的bean的作用域有: singleton 在每个Spring IoC容器中,一个bean定义只有一个对象实例. 以Spring的三种实例化Bean的方式的案例为基础,我们举例说明.首先我们将Spring的配置文件——beans.xml的内容改为: <?xml version="1.0" encoding="UTF-8"?&g…
Filter和Servlet中不能直接注解使用spring的bean,因为这两个都是servlet容器维护管理的,当然也有实现方法,如下: 1.创建一个AbstractServlet 抽象类,让你的所有servlet继承于此类: import java.io.IOException; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpSe…
单元测试中,针对接口的测试是必须的,但是如何非常方便的获取Spring注册的Bean呢? 如果可以获取所有的Bean,这样就可以将这个方法放到基类中,方便后面所有单元测试类的使用,具体实现如下: import org.apache.log4j.Logger; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.springframework.beans.fac…
在使用Spring做IoC容器的时候,有的类不方便直接注入bean,需要手动获得一个类型的bean. 因此,实现一个获得bean实例的工具类,就很有必要. 以前,写了一个根据bean的名称和类型获取bean实例的2个工具方法,发现每次调用后,都需要强制转换成目标结果类型. 这样很不方便,突然想到可以使用Java泛型方法,实现1个新的工具方法,避免了类型转换. import org.springframework.beans.BeansException; import org.springfra…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 import java.util.Map;   import org.springframework.context.ApplicationContext; import org.s…
方法一:在初始化时保存ApplicationContext对象方法二:通过Spring提供的工具类获取ApplicationContext对象方法三:继承自抽象类ApplicationObjectSupport方法四:继承自抽象类WebApplicationObjectSupport方法五:实现接口ApplicationContextAware 常用的5种获取spring 中bean的方式总结: 方法一:在初始化时保存ApplicationContext对象 ApplicationContext…
一.目的 写了一个项目,多个module,然后想在A模块中实现固定的config注入,当B模块引用A时候,能够直接填写相对应的配置信息就行了.但是遇到一个问题,B引用A时候,A的配置信息总是填充不了,获取不到在B中配置好的信息.猜测原因:因为项目的的bean文件没有被统一管理. 二.方法 fun1:在初始化时保存ApplicationContext对象 ApplicationContext ac = new FileSystemXmlApplicationContext("application…
我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器进行管理,但是在实际当中,我们往往会碰到在一个普通的Java类中,想直接使用spring提供的其他对象或者说有一些不需要交给spring管理,但是需要用到spring里的一些对象.如果这是spring框架的独立应用程序,我们通过 ApplicationContext ac = new FileSystemXmlApplicationContext("applicationC…
最近由于项目中出现了Servlet调用Spring的bean,由于整个项目中所有的bean均是注解方式完成,如@Service,@Repository,@Resource等,但是Spring的容器管理是不识别Servlet和filter的,所以无法使用注解方式引用,在网上查了资料后看到如下的代码:第一种方式:在Servlet的init方法中来完成bean的实例化,初始化后可以在servlet中调用bean中的方法 WebApplicationContext cont = WebApplicati…
分类: [java]2013-12-09 16:29 1020人阅读 评论(0) 收藏 举报 1.简介 在SSH框架下,假设我们将配置文件放在项目的src/datasource.properties路径下,Spring的配置文件也是src/applicationContext.xml路径下,那么我们可以借助Spring的property-placeholder读取配置文件,然后注入Bean中.我们在程序中,可以根据Bean的Id,获取注入的值.这样我们就可以借助Spring来读取配置文件. 2.…
.singleton 在每一个spring Ioc容器中一个bean定义只有一个对象实例.默认情况下会在容器启动时初始化bean,但我们可以指定bean节点的lazy-init = "true"来延迟初始化bean,这时候,只有第一次获取bean才会初始化bean.如下: <bean id = "xxx" class = "cn.itcast.OrderServiceBean" lazy-init = "ture"/&g…
singleton (默认方式) 在每个Spring IoC容器中一个bean定义只有一个对象实例.默认情况下会在容器启动时初始化bean,但我们可以指定bean节点的lazy-init=“true”来延迟初始化bean,这时候,只有第一次获取bean会才初始化bean.如:   1  <bean id="xxx" class="cn.itcast.OrderServiceBean" lazy-init="true"/> 如果想对所有…
import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.ApplicationContext; import org…
本文主要讲3中实现方式,请用第3种方法(通用) 1.servlet方式加载时配置如下 <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLo…
原文链接:http://blog.csdn.net/a9529lty/article/details/42145545 1.servlet方式加载时,[web.xml] <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-p…
有些场景我们不属于controller,service,dao,但是我们需要从spring中得到spring容器里面的bean.这时候我们需要一个类继承 ApplicationContextAware 实现这个类的set方法,set的参数就是spring的上下文,然后我们就可以 为所欲为了~~~ 话不多说,上代码. ApplicationContextHelper.java package com.mmall.common; import org.springframework.beans.Be…
1:Spring 容器中的 Bean 是有生命周期的,spring 允许 Bean 在初始化完成后以及销毁前执行特定的操作.下面是常用的三种指定特定操作的方法: 通过实现InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法: 通过<bean> 元素的 init-method/destroy-method属性指定初始化之后 /销毁之前调用的操作方法: 在指定方法上加上@PostConstruct或@PreDestroy注解来制定该方法是在初始化…
1.Utils工具类 package com.xxx.common.helper; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Compon…
package com.yxf.controller; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.…
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml"); UserService userService = (UserService) applicationContext.getBean("userServiceImpl"); ClassPathXmlApplicationContext    可以用来读取xml文件…