【视频&交流平台】
http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share
http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share
https://gitee.com/happyangellxq520/spring-boot
http://412887952-qq-com.iteye.com/blog/2321532
需求缘起:
在研究《Spring Boot集成Quartz升级篇》的时候,用到了AutowireCapableBeanFactory,什么情况下用到了呢?我们知道在Quartz具体执行任务的代码在Job类当中(具体是实现了Job的类),如果我们在Job类使用@Autorire注入的类话,那么是会报NullPointerException的。好了,这节文章介绍下如何使用AutowireCapableBeanFactory。
本章大纲:
(2)AutowireCapableBeanFactory的作用
(3)例子
接下里看下本节具体的内容:
(1)问题的抛出
在应用中一般普通的JavaPojo都是由Spring来管理的,所以使用autowire注解来进行注入不会产生问题,但是有两个东西是例外的,一个是 Filter,一个是Servlet,这两样东西都是由Servlet容器来维护管理的,所以如果想和其他的Bean一样使用Autowire来注入的 话,是需要做一些额外的功夫的。
(2)AutowireCapableBeanFactory的作用
让不受spring管理的类具有spring自动注入的特性
(3)例子
在spring boot 使用过程中可能会需要自定义个servletContextListener 并有可能需要注入spring管理的类,这时候如果没有特殊的配置的话,可能就会注入失败,这是网上很多碰到的问题,在这里博主要说明在1.4.0+版本,是不会出现这个问题的。这里只是为了讲解,那这个通俗易懂的案例来讲解而已:
package com.kfit.servlet;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.web.context.support.WebApplicationContextUtils;
import com.kfit.service.HelloService;
@WebListener
public class MyServletContextListener implements ServletContextListener {
@Autowired
private HelloService helloService;
@Override
public void contextDestroyed(ServletContextEvent event) {
}
@Override
public void contextInitialized(ServletContextEvent event) {
System.out.println("MyServletContextListener.contextInitialized()");
AutowireCapableBeanFactory autowireCapableBeanFactory = WebApplicationContextUtils.getRequiredWebApplicationContext(event.getServletContext()).getAutowireCapableBeanFactory();
autowireCapableBeanFactory.autowireBean(this);
}
}
视频&交流平台:
http://study.163.com/course/introduction.htm?courseId=1004329008
http://412887952-qq-com.iteye.com/blog/2321532
相关推荐
《Spring Boot参考指南》是Spring Boot开发者的重要参考资料,它详细阐述了Spring Boot框架的核心特性、配置方式、自动配置原理以及如何构建微服务应用等关键知识点。Spring Boot是Java开发领域中一个极其流行的轻量...
此外,Spring Boot 2.0还引入了Spring WebFlux的Actuator模块,提供了一套全面的健康检查、监控和管理工具,让开发者可以轻松地了解应用的运行状态。本书将详细解释如何利用Actuator进行性能调优和问题排查。 安全...
5. **非Spring管理类调用bean**: 在非Spring管理的类中,如果你想使用Spring容器中的bean,有以下几种方式: - 实现ApplicationContextAware接口,Spring会在初始化时自动注入ApplicationContext。 - 使用`@...
* 自动配置:Spring Boot 提供了自动配置功能,可以根据应用程序的需要自动配置依赖项和Beans。 * Starter 依赖项:Spring Boot 提供了一系列的 Starter 依赖项,可以简化依赖项的管理。 * Production-ready:Spring...
读者将了解到Spring Boot的核心特性,如自动配置、起步依赖和内嵌Web服务器等。 2. **起步依赖(Starters)**:Spring Boot通过起步依赖简化了依赖管理,书中会详细解释如何选择和使用不同类型的Starters,如数据...
通过以上知识点的介绍,我们可以看到Spring Boot不仅大大简化了Spring应用的开发过程,使得开发者能够快速搭建起项目的基础架构,而且其自动配置的特性极大地提高了开发效率和项目质量。学习Spring Boot可以帮助我们...
Pro Spring Boot is your authoritative hands-on practical guide for increasing your Spring Framework-based enterprise Java and cloud application productivity while decreasing development time using the...
- 创建业务服务类,利用Spring的依赖注入进行实例化和管理。 - 编写控制器,处理HTTP请求,并调用业务逻辑。 - 编写测试用例,确保代码质量。 - 使用IDE的构建功能打包项目,或者通过命令行运行`mvn clean ...
Spring Boot的核心思想包括自动配置和starters,这让创建独立的、生产级别的基于Spring框架的应用变得容易。由于其易于配置、快速启动和易用性等优点,Spring Boot已经成为许多Java开发者选择用来构建RESTful服务、...
8. Spring Boot的依赖管理:Spring Boot为常用的依赖提供了一套默认配置,比如嵌入式Servlet容器、日志记录等。Maven和Gradle等构建工具可以直接利用这些依赖。 9. Spring Boot项目构建系统:文档涵盖了Spring Boot...
Spring Boot是一个轻量级框架,它让开发者可以更快地开发和部署应用。它提供了许多特性来简化Spring应用的开发过程。 **9. 系统要求** - **Servlet容器:**Spring Boot支持多种Servlet容器,包括Tomcat、Jetty等。...
《Spring Boot参考指南2018最新版》是...详细内容可在提供的PDF文档中找到,包括但不限于更多配置选项、微服务、云原生支持等内容,这些都为开发者提供了强大的工具和便利,帮助他们高效地构建和管理Spring Boot应用。
这个插件是专为简化Spring Boot项目的开发和管理而设计的,它极大地提升了开发者的工作效率,让编写和调试Spring Boot应用变得更加简单。本文将深入探讨Spring Boot Assistant插件在IntelliJ IDEA中的使用方法和核心...
书中除了可能包含基础入门知识外,也很可能涵盖了对于Spring Boot高级特性的讨论,比如微服务架构和响应式编程的实践,这些内容在当下Java开发领域中非常流行且具有实际应用价值。 标签“spring boot”、“java”、...
源码中,这个功能主要在`META-INF/spring.factories`文件内的`org.springframework.boot.autoconfigure.EnableAutoConfiguration`键下列出的所有类中实现。开发者可以自定义自动配置类,以便为特定的库或服务提供...
这是Spring Boot的核心特性之一,它使得我们能够以编程方式管理对象,而无需XML配置。让我们逐步解析这个过程。 首先,了解Spring Boot的基础。Spring Boot旨在简化Spring应用程序的初始设置和配置,通过“约定优于...
- **安装 Spring Boot CLI**:Spring Boot CLI 是一个命令行工具,可以帮助开发者快速创建、管理和运行Spring Boot项目。安装过程通常涉及下载CLI工具包并将其解压到指定目录下,然后配置环境变量使其可以在命令行...
Spring Boot 中的几种注入方法 在 Spring Boot 中,注入是一种非常重要的机制,用于将 bean 对象注入到其他 bean 对象中,以便实现松耦合和高内聚的设计目标。下面我们将对 Spring Boot 中的几种注入方法进行详细的...
基于Spring Boot2.X的后台权限管理系统源码(适合学习Spring Boot开发).zip基于Spring Boot2.X的后台权限管理系统源码(适合学习Spring Boot开发).zip基于Spring Boot2.X的后台权限管理系统源码(适合学习Spring ...