SpringBoot @Bean如何加载Bean里面的List<Bean2>而不空指针异常!

如果@ImportResource(locations = "spring.xml")引入xml文件来加载上面的就没问题
"<"bean name="Test" class="com.config.Test"">"
"<"property name="list"">"
"<"bean name="Test2" class="com.config.Test2"">""<"/bean>"
"<"/property">"
"<"/bean">"
如果用@Bean注解来加载
@Bean
public Test getTest(){
Test test = new Test();
List list = new ArrayList();
list.add(Test2);
Test.setList(new Test2());
return test;
}
如果调用Test里的方法,Test的的方法里又执行了Test2里的方法,Test2里的方法又用@Autowired调用了其他,就会空指针异常,请问下怎么解决啊?

0

1个回答

Test、Test2 均使用spring来管理, Test 代码这样写

@Autowired
private List<Test2> list;
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Springboot加载bean查找父类
Springboot加载bean的时候,有时候有些类不再spring.factory文件中,但是声明的@Bean方法却能加载bean,spring是怎么处理的呢,我们以spring-webflux包中的WebFluxConfigurationSupport类为例说明,这个类有许多的@bean方法,其中之一: @Bean public DispatcherHandler webHandler...
Websocket--注入Bean,空指针异常
在websocketEndpoint中,使用@Autowired一些列注解注入Bean时候,一直无法注入,包空指针。 环境:JDK 8     Tomcat:8.5  SpringBoot 1.5.4 其中尝试了很多种方式,都无法满足,第一种解决解决办法, @ServerEndpoint(value=&quot;/websocketTest/{userId}&quot;,configurator=SpringC...
bean的加载(十一)初始化bean
我们知道Spring在配置bean的时候有一个init-method属性,这个属性的作用是在bean实例化前调用init-method指定的方法来根据用户业务进行相应的实例化,首先看下这个方法的执行位置,Spring中程序已经执行过bean的实例化,并进行了属性填充,而就在这时将会调用用户设定的初始化方法。 protected Object initializeBean(final String
bean的加载(七)创建bean
常规bean的创建时在doCreateBean中完成的,我们看看这个方法protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, final Object[] args) { // Instantiate the bean. BeanWrapper instanceWrapper =
加载bean
this.reader.loadBeanDefinitions(resource),这句代码是整个资源加载的切入点。(1)封装资源文件。当进入XmlBeanDefinitionReader后首先对参数Resource使用EncodedResource类进行封装。(2)获取输入流。从Resource中获取对应的InputStream并构造InputSource。(3)通过构造的InputSource...
Bean的加载
bean的加载过程是一个复杂的过程,doGetBean()源码很长,这里只是将重点加载步骤列举出来,方便以后复习,初次学习的小伙伴也可以按照这个步骤,细细品读源码. Bean加载过程 1.转换对应beanName 传入的name可能是bean的name,也可能是FactoryBean 注:通过getBean(String BeanName)获取到的Bean对象并不是FactoryBean的...
bean的加载
bean的加载过程比bean的解析复杂的多,主要是AbstractBeanFactory下面的doGetBean方法实现1、转换对应的beanName传入的参数可能是bean的别名,也可能是FactoryBean,所以需要在这里转换2、尝试从缓存中加载单例单例在容器中只会创建一次,后面直接获取bean就行了,首先尝试从缓存中拿,如果不成功就从singletonFactories,因为创建单例存在依...
如何把List里面的值取到Bean里面
各位大哥,rn小弟现在在做一个小功能,把CSV里面的数据读取到页面显示出来,只用JSTL标签,但是读取过程中是把数据一整条(包括逗号)读出来加到LIST里面的一个空间内,所有想把各个元素分离并加到bean里面,在页面能用JSTL的表示出来。rn哪位大哥提供下思路?rn谢谢
Structs引入bean时报空指针异常
我现在搭建一个简单的SSH框架的实例,结果在Action中引入Bean的时候报空指针异常,希望有知道的回复下,万分感谢。rnrn[img=https://img-bbs.csdn.net/upload/201405/14/1400070467_978529.png][/img]rnrnweb.xml文件的内容:rn[code=text]rnrnrn SpringStructIBatisrnrn rn contextConfigLocationrn rn classpath:spring/service/spring-service.xmlrn rn rn rn org.springframework.web.context.ContextLoaderListenerrn rnrn rn struts2rn org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterrn rn rn struts2rn *.actionrn rnrn rn springrn org.springframework.web.servlet.DispatcherServletrn rn contextConfigLocationrn /WEB-INF/applicationContext.xmlrn rn rnrnrn[/code]rnrnapplicationContext.xml的内容:rn[code=text]rnrnrnrn rn rn rn rn rn[/code]rnrnstruts.xml的内容:rn[code=text]rnrnrnrnrnrn rn rn /jsp/test.jsp rn rn rn rnrn[/code]rnrnspring-service.xml的内容:rn[code=text]rnrnrnrn rn rn rn rn rn rn rn rn rn[/code]rnrnStudent.java的内容:rn[code=java]rnpackage com.comprehensive.model;rnrnimport java.io.Serializable;rnrnpublic class Student implements Serializablernrn private static final long serialVersionUID = 1L;rn rn private int num;rn private String name;rn private String address;rn private char sex;rn public int getNum() rn return num;rn rn public void setNum(int num) rn this.num = num;rn rn public String getName() rn return name;rn rn public void setName(String name) rn this.name = name;rn rn public String getAddress() rn return address;rn rn public void setAddress(String address) rn this.address = address;rn rn public char getSex() rn return sex;rn rn public void setSex(char sex) rn this.sex = sex;rn rn rn public void print()rn System.out.println("========");rn rnrnrn[/code]rnrnTestAction.java的内容:rn[code=java]rnpackage com.comprehensive.action;rnrnimport com.comprehensive.model.Student;rnimport com.opensymphony.xwork2.ActionSupport;rnrnpublic class TestAction extends ActionSupport rnrn private static final long serialVersionUID = 1L;rn rn private Student student;rn rn public Student getStudent() rn return student;rn rnrn public void setStudent(Student student) rn this.student = student;rn rnrn public String toTestAction()rn System.out.println("=======ceshi=======");rn //引入的时候会报错rn student.print();rn return SUCCESS;rn rnrnrnrn[/code]rn
springboot 加载完bean之后的初始化
一般情况下,我们的项目在刚启动的时候就需要初始化一些数据,特别有些是需要查询表的情况下,这时候我们就要用到springboot的初始化了, 我自己的个人网站就用到了这种技术 我们需要实现 CommandLineRunner 接口并在类上面添加 @Component 和 @Order(2) 注解 , 并重写run()方法,springboot会自动扫描这些注解,即可完成初始化, 注意:这个初始...
springBoot根据不同的条件,加载不同的bean。
使用spring4.X新加入的@Conditional注解。 import org.springframework.context.annotation.Condition; import org.springframework.context.annotation.ConditionContext; import org.springframework.core.type.Annotated...
[SpringBoot] 通过注解加载自定义的Bean
1.在springboot工程中,默认会扫描启动类所在包路径下面的所有bean,比如启动类下面还有很多的包路径,里面定义了一些类,通过@Componount’注解指定的类会被加载到bean容器,但是如果自己有一个类,达成了jar包不在启动类下面,怎么加载呢? 2.可以使用注解的形式,比如 @Autwire ClassName classname; 但是如果有多个的话,这样就不...
SpringBoot源码解析-Bean的加载与自动化配置
springboot作为一个基于spring开发的框架,自然也继承了spring的容器属性。容器中的bean自然成为了springboot各种功能的基础。本节就来分析一下springboot如何将各种bean加载进容器中。 开始分析之前首先我们先概览一下springboot框架究竟加载了多少bean。在main函数中添加如下代码,运行。 public static void main(Strin...
Bean、List<Bean>、Json、Map、Xml相互转换
       系统交互中,经常会遇到各种形式的参数传递,XML、Map、Json等等,今天整理了一个涵盖各种类型转换的工具类,与大家分享分享!      package org.ccnu.edu.util; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans...
工具类:解析json格式java bean,List<bean>
需要jar:fastjson-1.1.34.jar 1、测试bean类:User.java public class User{ private int id; private String name; public User() { } public User(int id,String name) { this.id = id; this.name = name; }
spring源码之bean加载(bean解析下篇)
bean的加载步骤: MyTestBean bean = (MyTestBean) bf.getBean("myTestBean");步骤:(1) 转换对应的beanNamename="&amp;aa"=&gt;name="aa" || A-&gt;B-&gt;C=&gt;C(2) 尝试从缓存中加载单例singletonFactories集合缓存ObjectFactory(3) bean的实...
bean的加载(八)创建bean的实例
下面我们一步步分析doCreatBean方法,首先从createBeanInstance开始。 protected BeanWrapper createBeanInstance(String beanName, RootBeanDefinition mbd, Object[] args) { // Make sure bean class is actually resolved at th
bean的加载-获取单例和准备创建bean
1、获取单例如果缓存中不存在已经加载的单例bean,就需要重头开始bean的加载过程,在spring中AbstracBeanFactory的 getSingleton的重载方法实现了bean的加载1.1、检查缓存是否已经加载过,spring3.2是直接使用synchronized锁定需要同步的变量,4.0之后Object singletonObject = this.singletonObject...
bean的加载(九)记录创建bean的ObjectFactory
在doCreateBean中有这样一段代码: //是否需要提早曝光:单例&允许循环依赖&当前bean正在创建中,检测循环依赖 boolean earlySingletonExposure = (mbd.isSingleton() && this.allowCircularReferences && isSingletonCurrentlyInCreation(beanName));
spring的bean工厂加载完找不到bean
获取bean工厂简略代码rnprivate static ApplicationContext overrideApplicationContext;rnpublic static void main(String[]args)rn rn ApplicationContext context;rn if (overrideApplicationContext != null)rn rn context = overrideApplicationContext;rn elsern rn rn BeanFactoryLocator bfl = ContextSingletonBeanFactoryLocator.getInstance();rn BeanFactoryReference bf = bfl.useBeanFactory("OBJ_REGISTRY");rn context = (ApplicationContext)bf.getFactory();rn Dao dao =(Dao) context.getBean("dao",Dao.class);//这里找不到bean了rn rnrnspring 的引用文件beanRefContext.xml加载ok.rnrn rn rn rn classpath*:/spring/applicationContext.xmlrn classpath*:/spring/jmsContext.xmlrn classpath*:/spring/dataAccessContext.xmlrn classpath*:/spring/serviceContext.xmlrn classpath*:/spring/actionContext.xmlrn rn rn rn rnrn运行之后就找不到rnclasspath*:/spring/dataAccessContext.xml这个文件里的bean了rn Dao dao =(Dao) context.getBean("dao",Dao.class);//这里找不到bean了
bean的加载(六)准备创建bean
Spring源码中,我们不可能指望在一个函数中完成一个复杂的逻辑,而且我们跟踪了那么多Spring代码,经历了那么多函数,或多或少也发现了一些规律:一个真正干活的函数其实是以do开头的,比如doGetObjectFromFactoryBean;而给我们错觉的函数,比如getObjectFromFactoryBean,其实只是从全局角度去做一些统筹的工作。而这个规则对于createBean也不例外,
bean的加载-缓存中获取单例bean
单例只会在容器里面创建一次,后续获取bean直接从缓存中尝试获取,如果没有在尝试从singletonFactories中获取,创建bean的时候可能会出现依赖注入的情况,为了避免循环依赖,在还没有创建bean之前就会把bean的ObjectFactory加到缓存,依赖时,直接使用ObjectFactory就可以了1、具体的实现方法2、主要分为以下步骤一、检查缓存中是否存在实例二、实例如果为空,则锁...
springboot初始化bean扫描
这里主要是扫描自定义注解 public class AnnotationScan implements ApplicationListener{ @Autowired RedisTemplate redisTemplate; private final static Logger logger = LoggerFactory.getLogger(Annotation
SpringBoot 第七篇 之 Bean 的作用域
在IoC容器最顶级接口BeanFactory 中,有 isSingleton(单例), isPrototype (原型) 两个方法,isSingleton 方法如果返回true ,则bean在IoC容器中以单例存在,这是spring IoC容器的默认值。 isPrototype 是true 则每次获取bean的时候会创建一个新的bean。 单例(singleton),原型(pototype...
springboot启动时获取Bean
在springboot中我们通过配置类来加载配置信息,而在配置类中是无法加载Bean的。我们有时候需要在项目启动时加载数据库数据,这就造成无法使用配置的数据源,而spring给我们提供了一个方法,就是实现CommandLineRunner。@Component @Order(value = 2) public class DroolsAutoDbRule implements CommandLin...
SpringBoot定制自己的bean
springboot每次使用都是直接autowire注入进去的,然后注入进去并不能set &amp; get 来修改属性,这高度封装就产生了一个问题。像之前用Spring,在xml文件配置一下即可,但SpringBoot呢? 方法一: 以最常见的DataSource数据库为例。一般注入DataSource直接在application.properties配置一下数据源即可以使用,返回的为Spr...
springboot之自动装配Bean
方式一:配置文件xml装配 在resources文件夹下新建spring.xml,注意:beans 以及后面的声明要加上,否则会报错。 id对应的名称,待会获取用这个自定的名字,class则是注入的类的路径。 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.or...
springboot静态方法 引用bean
现在用springboot,将公有方法抽出写成一个静态方法,方便调用 @Component public class GetRoleUtil { @Autowired private UserMapper userMapper; @Autowired private static UserMapper staticuserMapper; @PostCo...
springboot注入bean的问题
[code=java]@ServerEndpoint(value = "/websocket")rn@Componentrnpublic class WebSocketrnrn @Autowiredrn private IntegralDao integralDao; rn rn @OnOpen rn public void onOpen() rn System.out.println("连接已完成"); rn rn rn @OnMessage rn public void say(String message, Session session) rn try rn Integral integral = integralDao.findIntegralByUserName(message);rn session.getBasicRemote().sendText(String.valueOf(integral.getState())); rn catch (IOException e) rn e.printStackTrace(); rn rn [/code]rnrn
springboot~注册bean的方法
spring在启动时会自己把bean(java组件)注册到ioc容器里,实现控制反转,在开发人员使用spring开发应用程序时,你是看不到new关键字的,所有对象都应该从容器里获得,它们的生命周期在放入容器时已经确定! 下面说一下三种注册bean的方法 @ComponentScan @Bean @Import @ComponentScan注册指定包里的bean Spring容器会扫描@Comp...
Springboot学习-bean的定义
Springboot以其强大的功能而广受开发者的喜爱,其中非常优秀的一个功能就是注解非常智能化,本文探讨springboot的自动发现功能。spring框架中用来定义bean的注解有@Repository,@Component,@Bean(@Configuration注解的类中),@Controller,@Service,等注解。这些注解用来标记对应的类是一个bean,然而,如何在spring容器...
springboot对bean的生命周期管理
声明:代码是JavaEE开发的颠覆者 Spring Boot实战代码中的,我只是拿去学习。 ---传统方式 public class BeanWayService { public void init(){ System.out.println("@Bean-init-method"); } public BeanWayService() { ...
SpringBoot 第四篇 Bean的生命周期
Spring Bean 的生命周期大致分为:Bean定义,Bean初始化,Bean的生存期,Bean的销毁四个部分 a. 资源定位: Spring 通过我们的配置 如@ComponentScan 定义扫描路径去找带有@Component的类, 这个过程就是一个资源定位的过程。 b.Bean定义: 一旦找到了资源,他就开始解析,...
springboot获取spring容器里面的bean进行调用
业务场景:springcloud中的service端中,activity流程中一个流程发起之后由activity框架里面的监听一个节点结束,到另外一个节点发起。在这过程中,需要继承activity里面的接口然后调用service里面的查询方法。由于这个类没有初始化在spring容器里面进行bean的管理,所以注入service里面的方法注入不进来。这个时候就需要去获取这个具体service在spr...
cfx bean list
cfx处理JavaBean类型与List的集合类型,工程师utf-8编码
SpringBoot里@autowired的Bean是从哪儿获得的
按照我现有的知识水平,我觉得@Autowired 自动装配时,注入的Bean可能来自rn1,xml里定义的rn2,使用@component注解让Spring自动创建的rn但是今天看到一个代码,rn@Autowiredrn private UserDao userDao;rn其中UserDao来自rnpublic interface UserDao extends CrudRepositoryrn无论在哪儿也找不到这个Bean是在哪儿定义的,但是代码还能正常工作。rn于是猜测rn猜测1 @Autowired除了自动装配外,如果找不到Bean还会创建一个Beanrn猜测2 这是 CrudRepository导致的, CrudRepository会自动创建一个Beanrn求解释求科普
SpringBoot里的Bean的初始化与销毁顺序
我今天学习到SpringBoot里面自定义Bean的初始化与销毁方法,我先总结一下我学到的四种方法: 方法一: 指定init-method 和 destory-method 方法二: 通过让 Bean 实现 InitializingBean 接口,定义初始化逻辑                                              DisposableBean 接口,定义销毁...
jsp里如何使用bean
大神们,请教一下为什么会出现如下问题?
请问在BEAN里如何获取路径?
请问在BEAN里如何获取路径?rn
spring bean加载原理
简单的分析了一下spring bean的加载原理,属于个人的理解,源码比这个要复杂的多: spring的配置文件applicationContext.xml的内容如下: beans> bean id="userDao" class="com.qjl.study.spring.dao.impl.UserDaoImpl">bean> beans> 非web环境下我们通常这么来
相关热词 c# gdi 占用内存 c#中遍历字典 c#控制台模拟dos c# 斜率 最小二乘法 c#进程延迟 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd c# 操作sql视图