今天在自己开发的工具类中使用了spring注入的方式调用了其他类,但是发生的报错,在整理了后今天小结一下。

首先简单介绍下spring容器,spring容器是整个spring框架的核心,通常我们说的spring容器就是bean工厂,bean工厂负责创建和初始化bean、装配bean并且管理应用程序中的bean.spring中提供了两个核心接口:BeanFactory和ApplicationContext,ApplicationContext是BeanFactory子接口,它提供了比BeanFactory更完善的功能。

从上面可以看出所有依赖注入的类都必须要加入到spring容器中,由spring容器帮我们做类的事例化,管理我们的类,下面我们简单介绍下加入spring容器的四种方式(spring内置注解如@Controller、@Service这种就不讲解了)。

1、在项目启动时,通过@bean的方式将普通类事例化到spring容器中,如下

2、通过@component注解把普通pojo实例化到spring容器中,如下

3、通过实现ApplicationContextAwarej加载上下文的方式实现,如下

①实现ApplicationContextAware接口:

package cn.bravolinks.erp.prm_website.utils;

import org.springframework.beans.BeansException;

import org.springframework.context.ApplicationContext;

import org.springframework.context.ApplicationContextAware;

import org.springframework.stereotype.Component;

@Component

public class SpringBeanFactoryUtils implements ApplicationContextAware {

private static ApplicationContext appCtx;

/**

* 此方法可以把ApplicationContext对象inject到当前类中作为一个静态成员变量。

* @param applicationContext ApplicationContext 对象.

* @throws BeansException

*/

@Override

public void setApplicationContext( ApplicationContext applicationContext ) throws BeansException {

appCtx = applicationContext;

}

/**

* 获取ApplicationContext

* @return

*/

public static ApplicationContext getApplicationContext(){

return appCtx;

}

/**

* 快速得到一个BEAN

* @param beanName bean的名字

* @return 返回一个bean对象

*/

public static Object getBean( String beanName ) {

return appCtx.getBean( beanName );

}

/**

* 快速得到一个BEAN

* @param clazz bean的类型

* @return

*/

public static T getBean(Class clazz){

return appCtx.getBean(clazz);

}

}

②spring容器创建实例

RestWorkFlowService restWorkFlowService = SpringBeanFactoryUtils.getBean(RestWorkFlowService.class);

4、通过spring配置文件中的实现,如下

java类加入到spring容器_普通java类加入spring容器的四种方式相关推荐

  1. java适合内向的人吗_性格内向的人最适合这四种工作!

    从心理学的角度来讲,人的性格大致可以分为独立类型.乐观型.内向型和经验型,生活中可能我们每种类型的特点都会有一些,但是一般会有一个类型特点占的比重多一些,今天我们就来讲讲内向型的人有什么样的特点. 在 ...

  2. Java中数组转List的四种方式

    第一种方式(未必最佳):使用ArrayList.asList(strArray) 使用Arrays工具类Arrays.asList(strArray)方式,转换完成后,只能对List数组进行查改,不能 ...

  3. Java 数组转List的四种方式

    Java 数组转List的四种方式 第一种方式(未必最佳):使用ArrayList.asList(strArray) ​ 使用Arrays工具类Arrays.asList(strArray)方式,转换 ...

  4. 通过@Import注解把类注入容器的四种方式

    文章目录 1. @Import导入的四种方式 2. 准备工作 ①:导入普通类ConfigA ②:导入`@Configuration`配置类ConfigB ③:导入`ImportSelector`的实现 ...

  5. java中四种注入注解,Spring中依赖注入的四种方式

    在Spring容器中为一个bean配置依赖注入有三种方式: · 使用属性的setter方法注入  这是最常用的方式: · 使用构造器注入: · 使用Filed注入(用于注解方式). 使用属性的sett ...

  6. java配置文件实现方式_java相关:详解Spring加载Properties配置文件的四种方式

    java相关:详解Spring加载Properties配置文件的四种方式 发布于 2020-4-29| 复制链接 摘记: 一.通过 context:property-placeholder 标签实现配 ...

  7. mysql java 日期格式化_(转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...

    java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 1. java向MySQL插入当前时间的四种方式 第一种:将java.util.Date ...

  8. Java 创建类的四种方式

    Java 创建类的四种方式 对于上学期已经学习过c++的同学,是不是对另一大编程语言产生了浓厚的兴趣,对于c++的面向对象编程,又和java的面向变量有何区别,下面我们从java四种创建对象来说起. ...

  9. java实现子序列最大和_算法入门:最大子序列和的四种算法(Java)

    最近再学习算法和数据结构,推荐一本书:Data structures and Algorithm analysis in Java 3rd 以下的四种算法出自本书 四种最大子序列和的算法: 问题描述 ...

最新文章

  1. java8 内存模型_java8内存模型
  2. Dropout 理论基础与实战细节
  3. 修改windows默认远程管理端口
  4. PDF文件怎么转换成Word?这几种方法原来这么简单
  5. 【得物技术】机器学习在图形验证码识别上的应用
  6. 龙卷风“掀翻”亚拉巴马州 至少19人死亡
  7. ABeam Insight | 女性科技系列(2):全球女性科技(FemTech)现状
  8. 通过耳道形状来验证用户身份?苹果:未来,AirPods可能实现
  9. Somatic selection distinguishes oncogenes and tumor suppressor genes
  10. C#程序设计之windows应用程序设计基础
  11. lastfm 1k user 数据集简介
  12. 【连载】大学物理笔记——第一章末+第二章质点动力学
  13. c226打印机驱动安装_打印机驱动怎么装?网络打印机驱动的安装方法
  14. 零基础学习UI设计技能
  15. STM32入门开发--LED模块实现跑马灯
  16. 微信公众号关于百度地图和腾讯地图本地定位api的调用(js)
  17. 自定义漂亮的Android SeekBar样式
  18. 设计师学python有意义吗-如果你有设计师朋友,请对他好一些...
  19. 认识webpack、理解webpack与grunt、glup的核心区别01
  20. 桌面上的我的电脑、文件夹打开后只有在任务栏显示

热门文章

  1. c语言打印字母菱形————用绝对值
  2. 任务3-3 查看手机配置与功能
  3. 绕cdn,求真实ip
  4. 没听过这些网页翻译插件,你还敢说你用谷歌浏览器?
  5. [生存志] 第137节 刘向父子五纪三统
  6. 如何检测是否使用gpu
  7. 关于帧间距 IFG技术的讨论
  8. 【ftrack聊天室】又来大佬了!VR的流程搭建还可以这么玩?!
  9. AlphaZero称王!DeepMind AI制霸三大棋类游戏
  10. Win11在桌面添加透明便签的简单方法