如下是在网上找到的5中获取spring 中bean的方式总结:
方法一:在初始化时保存ApplicationContext对象
代码:
ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");
ac.getBean("beanId");
说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。
方法二:通过Spring提供的工具类获取ApplicationContext对象
代码:
import org.springframework.web.context.support.WebApplicationContextUtils;
ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc);
ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);
ac1.getBean("beanId");
ac2.getBean("beanId");
说明:
这种方式适合于采用Spring框架的B/S系统,通过ServletContext对象获取ApplicationContext对象,然后在通过它获取需要的类实例。
上面两个工具方式的区别是,前者在获取失败时抛出异常,后者返回null。
方法三:继承自抽象类ApplicationObjectSupport
说明:抽象类ApplicationObjectSupport提供getApplicationContext()方法,可以方便的获取到ApplicationContext。
Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入。
方法四:继承自抽象类WebApplicationObjectSupport
说明:类似上面方法,调用getWebApplicationContext()获取WebApplicationContext
方法五:实现接口ApplicationContextAware
说明:实现该接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 对象。
Spring初始化时,会通过该方法将ApplicationContext对象注入。
虽然,spring提供了后三种方法可以实现在普通的类中继承或实现相应的类或接口来获取spring 的ApplicationContext对象,但是在使用是一定要注意实现了这些类或接口的普通java类一定要在Spring 的配置文件application-context.xml文件中进行配置。否则获取的ApplicationContext对象将为null。
如下是我实现了ApplicationContextAware接口的例子
package quartz.util;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class SpringConfigTool implements ApplicationContextAware{//extends ApplicationObjectSupport{
private static ApplicationContext context = null;
private static SpringConfigTool stools = null;
public synchronized static SpringConfigTool init(){
if(stools == null){
stools = new SpringConfigTool();
}
return stools;
}
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
context = applicationContext;
}
public synchronized static Object getBean(String beanName) {
return context.getBean(beanName);
}
}
XML文件中的配置信息:(一定要加上这段内容)
<bean id="SpringConfigTool" class="quartz.util.SpringConfigTool"></bean>
相关推荐
通过上述分析,我们可以看到,获取Spring中代理对象的目标对象并非一件简单的事情,它涉及到Spring AOP的底层实现以及Java反射机制的运用。`AopTargetUtils`工具类提供了一种统一的方式,无论是JDK动态代理还是CGLIB...
Spring框架是Java开发中最常用的轻量级开源框架之一,它以其强大的依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)能力而著名。本篇将深入探讨Spring的核心概念、主要模块...
在Spring 3.0.5版本中,Spring扩展了对AOP的支持,特别是在处理HTTP响应时,可以通过AOP来获取`HttpServletResponse`对象。`HttpServletResponse`是Servlet API中的核心接口,它用于封装服务器向客户端发送的响应...
总结,Spring框架通过BeanFactory和ApplicationContext提供了灵活的方式来管理和获取Bean。开发者可以根据应用需求选择合适的方式,从XML配置到注解注入,再到基于Java的配置,Spring都提供了全面的支持。理解这些...
在Spring配置文件中,可以通过`org.springframework.jndi.JndiObjectFactoryBean`类来定义一个数据源。例如: ```xml <bean id="sysDB" class="org.springframework.jndi.JndiObjectFactoryBean"> <value>hzsh_...
总结来说,Spring中的自定义注解和AOP的结合,提供了一种强大的工具,帮助开发者实现更高级别的抽象和解耦。自定义注解用于标记特定的行为或状态,而AOP则负责在运行时动态地响应这些标记,以执行相应的逻辑。这种...
SpringSecurity是Java开发中用于构建安全Web应用的框架,它提供了强大的身份验证、授权和访问控制功能。在本文中,我们将深入探讨SpringSecurity的核心概念、关键组件以及如何配置和使用这个框架。 首先,Spring...
`<bean>`元素用于告诉Spring容器一个类及其配置方式。它包含了以下关键属性: - **class属性**:表示JavaBean的全限定类名。例如,`com.example.MyClass`。这是Spring创建Bean实例的基础。 - **id属性**:是Bean...
- **BeanFactory**是Spring框架中最基础的容器接口,它定义了一系列用于管理Bean的基本操作,如获取Bean、判断容器内是否存在某个Bean、确定Bean的生命周期(单例或原型)等。 - BeanFactory并不关心Bean是如何定义...
在Java中,获取当前时间可以通过`Date`、`Calendar`以及`DateFormat`类实现,而Spring框架提供了一套强大且灵活的定时任务处理机制,包括`@Scheduled`注解和`TaskScheduler`接口,可以满足各种定时任务的需求。...
在示例中,`mongoTemplate.getCollectionName(Person.class)`方法用于获取指定实体类对应的集合名称。 3. **MongoDB命令执行**:Spring Data MongoDB通过`MongoTemplate`提供执行MongoDB命令的功能。`execute...
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...
- 数据库中的认证信息暴露,黑客可以轻易获取用户凭证。 - 个人信息未加密存储,增加敏感信息泄露的风险。 - 传输层安全不足,未使用 SSL 加密,使得通信内容可能被截获。 **二、为什么使用 Spring Security** ...
Spring Cloud Dalston是Spring Cloud的一个版本,其中文文档是开发者在使用Spring Cloud进行微服务...通过阅读Spring Cloud Dalston中文文档参考手册,开发者可以更深入地理解并掌握Spring Cloud在微服务开发中的应用。
总结来说,Spring Boot允许开发者轻松地在普通类中使用bean,通过Spring容器的强大功能来管理对象和依赖。通过理解并熟练运用上述知识点,可以更高效地开发Spring Boot应用。博客"17. Spring Boot普通类调用bean【从...
总结起来,Spring Boot通过`@ConfigurationProperties`注解提供了一种类型安全的方式来访问`application.yml`中的配置,同时`Environment`接口作为通用的解决方案,适用于获取任何环境属性。这两种方式都能有效管理...