spring 注入 和 new 的对象,的问题。。。

我需要new一个子线程对象,子线程对象里有注入的数据库底层对象,
需要调用他的方法。但是不行了。注解都失效。但是我必须的new线程对象的。
有没有其他办法?

0

3个回答

题主贴一下代码
new线程和注入没有关系,关键是你说的数据库底层对象,我估计你是new了这个东西,这个不能new,只能通过容器获取

0
vane11
Vane11 回复java后端热爱者: 不是线程对象的注入,是你实际做处理的类调用问题。线程对象也是对象,也能注入
接近 2 年之前 回复
weixin_38244834
java后端热爱者 线程对象好像不能注入吧?
接近 2 年之前 回复

注入是一种“控制反转”的实现,,控制反转的一个目的是防止由于 new 对象产生的耦合。

【1】但是不行了。注解都失效。但是我必须的new线程对象的。
(1)在spring配置文件中配置这个对象,,
(2)在主线程中加载spring配置文件,,(加载的时候,对象就创建了,等你用)
(3)getbean(),,,,即可取出你需要的对象

0
Small_Mouse0
小鼠标丶 回复vane11: 可以么,互相学习,,讨论不是打排位,没有什么输赢。qq1486145487
接近 2 年之前 回复
vane11
Vane11 回复小鼠标丶: 你要是感兴趣私信给我Q Q号吧,这边讨论影响大家
接近 2 年之前 回复
Small_Mouse0
小鼠标丶 回复vane11: 耦合,不仅仅是设计层的事。假如我很多地方new对象了我对象名字改了,是不是牵一发而动全身(需要把所有用到这个对象的地方都改了,虽然ide有更改的功能,万一改的是实现方式或者功能尼?不好搞了吧)。。。“new 对象和相互依赖,没有关系”怎么可能没有关系,至少都引用了还能不依赖??。。。。面向对象设计原则有个,依赖倒置原则,我用接口调用函数,实现变了,跟调用没关系,改下配置文件就能够更新所有调用(注入是不是让耦合度瞬间降低??)
接近 2 年之前 回复
vane11
Vane11 回复小鼠标丶: 耦合更多是设计层面的事,不是实现层面的事。new 对象和相互依赖,没有关系;注入也是相互依赖,你可以想一下注入的到底是什么,也可以是每次都注入一个new 的对象,是不是
接近 2 年之前 回复
Small_Mouse0
小鼠标丶 回复vane11: 当然我也不是吵架的,交流学习。。。。“控制反转的一个目的是防止由于 new 对象产生的耦合”,,由于项目中多次new对象,互相依赖,耦合严重,把new对象的任务交出去(控制反转:控制权由应用代码中转到了外部容器,控制权的转移是所谓反转。),用的时候直接get(或者注入),,,
接近 2 年之前 回复
vane11
Vane11 回复小鼠标丶: 我不是来吵架的。。。“控制反转的一个目的是防止由于 new 对象产生的耦合”
接近 2 年之前 回复
Small_Mouse0
小鼠标丶 回复vane11: 首先,你这句话我说了??请您好好看看,,我的意思是,注入是实现解耦的一种方法。。。。你说:“注入并不是防止由于new对象产生的耦合”,那么请问,你理解的注入是什么??
接近 2 年之前 回复
vane11
Vane11 注入并不是防止由于new对象产生的耦合
接近 2 年之前 回复

new的楼主别想用注解了,不知道楼上在说啥!!!!

在线程里用原生态代码向容器里取啊!
给你代码例子:

 WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
        this.dao=(Dao) wac.getBean("dao");

org.springframework.web.context.ContextLoader这个类

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
自己new的对象怎么注入spring管理的对象
本文主要参考了以下两篇博客,然后将两者整合起来kenick的博客 http://blog.csdn.net/leadseczgw01/article/details/53941871飞飞狐的博客 http://blog.csdn.net/xiefeifeihu/article/details/5701436正文:    我这里主要是想在项目中运用装饰者模式,但是因为自己new出来的装饰者servi...
关于 Spring new出来的对象 与自动注入对象
最近工作中碰到一个问题,系统架构是spring+mybatis+Quartz ,Quartz启动一个定时Job 跑任务,定时的Job中new了一个任务类出来,这个任务类中又用了spring的自动注入,注入了Dao层的接口,发现任务类中注入的Dao接口 是空的。  网上一通搜,原来 spring 的自动注入跟 new 不能混合着用,springrn 的注入要统一使用,类的一步一步引用,要么为全部注入
直接new 对象 Spring 不会注入的解决方法
1.建一个类实现ApplicationContextAware接口,有一个引用ApplicationContext的静态成员,然后,遗留系统需要引用spring管理的bean的地方,使用这个类。package com.eliteams.quick4j.web.utils;import com.eliteams.quick4j.web.listenner.ListennerTask;nimport o
Springboot中new出来的实例中含有@Autowired注入时的Spring Bean为NULL
问题:new出来的实例中含有@Autowired注入时,注入的Bean为null;nn解决方法:不要用new的方式实例化,也采用注解的方式,在需要new的实例类上加@Component注解,通过注入的方式使用实例化类;nn原因:@Autowired注入时是将类交给Springboot管理,而new出来的实例脱离了Springboot的管理,两个东西不在一个管理者管理下,所以没法联系在一起,@Aut...
将new Object()注入到Spring容器并实现依赖注入
将new Object()注入到Spring容器public class UserDao {n @Resourcen AccountService accountService;n public void print(){n System.out.println(accountService);n }n}比如有以上这个类,实现将new UserDao()放入Sp
new 出的对象,无法调用@Autowired进入的spring bean
n一不小心进了这个坑   记录一下rn rn rn@Autowired来的spring 下的bean,则当前类必须也是spring bean才能调用它,不能用new Xxx()来获得对象,这种方式获得的对象无法调用其内的@autowired的beanrnnn1. 类1 加入spring poolrnpublic class PersonServiceImpl implements PersonSe...
spring类的注入和new简单理解
springbootnn    1、main.run方法进入nn    2、refreshContextnn    3、refreshnn    4、finishBeanFactoryInitialization(完成beanFactory的初始化)nn    5、preInstantiateSingletons(初始化单例)nn    6、getBean(获取Bean)nn    7、doGet...
spring的IOC控制反转依赖注入和new对象的区别
                   spring默认是单例模式的,依赖注入其中操作的都是一个对象nn        new对象单例中如果要做到注入的效果就是在类的头部进行实例化对象,这个时候该对象不管使用与否都贯穿该类的始终。该类对象不被回收,这个实例化对象也不会被回收,因为存在引用状态。如果要使用多例对象则最好使用new创建对象而不是依赖注入,即使依赖注入有多例模式也不推荐。nnn依赖注入:是...
spring对象注入失败问题
spring对象注入失败rnrnrn问题描述rnrn笔者在编写代码中,希望构建一个工具类,在工具类中需要访问dao层接口操作数据库。于是便想在工具类中注入一个mabatis的mapper接口。rn代码片段rnrnrnpublic class LogUtil {rnrn @Autowiredrn private LogMapper logMapper;rnrn public static final Stri...
手动将new出来的object注入(注册)到spring容器中
看dubbo源代码. xml里配置的dubbo consumer对应的ReferenceBean. 是spring的FactoryBean.rn一般情况下FactoryBean 直接配置在xml里,然后spring自动注入.rn但现在需要手动(编程式)将FactoryBean手动注入到容器中.rn运用debug的原理的原理发现FactoryBean的getObject()调用堆栈是. 但这里已经是
springboot自动(@Autowired)注入方式与自己new实例的区别讲解
在上期讲到springboot搭建的多模块项目(module)Service自动注入(@Autowired)空指针错误解决的时候https://blog.csdn.net/Myuhua/article/details/84317582,跟大家说到要把为什么在new对象跟自动注入对象同时使用时会空指针,还有就算new对象怎么处理才不会出现空指针的问题给大家说一下,今天我就来还账了。nn谈到这个问题,...
springboot通过new关键字创建的类中 @Resource 注解的对象没有成功注入,无法调用service层接口
Springboot项目中 new 创建的对象中无法使用@Resource 或@Autowired 注解实例化service层注入nn那么如何引用呢,web启动类中注入 service 对象 设置为static new创建的对象 类中引用,测试不可实现,以为静态变量 不能用@Resource 或@Autowired 注入,所以可通过以下方式实现,将注入的方法正常注入fService对象nn @Re...
Springboot中new出来的实例中@Autowired注入的Spring Bean为NULL的问题
某个类中的成员,如果是采用@Autowired注入Spring Bean,则当前类的实例,必须也是Spring Bean才能成功注入,即该实例不能用new xxx()来获得,这种方式获得的实例无法调用@Autowired注入的Bean,应该也采用@Autowired注入,注意在类上使用@Component注解。nn其他注入失败的原因,注意这句话:“SpringBoot项目的Bean装配默认规则是根...
手动创建(new)对象,使用spring容器中的bean(ServletContext)。
场景:一个不受spring管理的静态工厂方法,根据传入的参数不同,返回不同的实现类对象(关键点:实现类对象需要使用spring容器中的数据访问层对象dao或mapper)。nn疑难点:如何从spring容器中获取bean,并注入到自己new出来的对象中。nn解决方案:使用spring的autoware机制+static,spring的autoware自动装配:只要类实现了ServletContex...
多线程中使用Spring的注入问题
rn rn在开发中经常会使用Spring的@Autowired来实现对象的自动注入,但是在最近的开发中在多线程中用Spring的@Autowired来自动注入时总是注入不进去,代码如下:rnpackage com.common.base.utils.SpringUtils;rnrnimport org.springframework.beans.factory.annotation.Autowir...
spring处理对象相互依赖注入的问题
最近重新再看spring的内容的时候有个疑问:当spring对象对象存在相互依赖注入的时候,会不会造成死循环,如果不会spring是怎么解决的?带着这个疑问我自己在eclipse试了一下,发现是能正常运行的,那么spring是怎么做到的呢,带着疑问我百度了一下,查到一篇博客可供大家参考:https://blog.csdn.net/u012410733/article/details/6106285...
程序中的实体对象会注入到spring容器中吗?
 要理解为什么不用注入,首先就清楚注入的目的是什么?nn如果不注入,在程序中要使用某个类对象的方法,则需要去new一个对象。然后我们调用其中的方法,众所周知“程序=算法+数据”。不失一般性,在面向对象开发中,类一般有两种,一种是功能类的,主要是完成一些业务操作。一种是数据类,主要是存储数据,比如POJO。我们数据提交上来后,自己组装PO(当然也有的框架可以帮我们组装好),然后调用功能类的方法去操作...
spring 如何在普通类中调用注入的对象
WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext();n service= (UserService) context.getBean("userService"); rn注意:userService首字母小写
Spring在Thread中注入Bean无效的解决方式[嗡汤圆的小笔记]
在Spring项目中,有时需要新开线程完成一些复杂任务,而线程中可能需要注入一些服务。而通过Spring注入来管理和使用服务是较为合理的方式。但是若直接在Thread子类中通过注解方式注入Bean是无效的。因为Spring本身默认Bean为单例模式构建,同时是非线程安全的,因此禁止了在Thread子类中的注入行为,因此在Thread中直接注入的bean是null的,会发生空指针错误。以下分别列举错误
关于spring使用new对象时注解失效问题解决办法
SpringContextUtlis工具类(通过bean的名字来获取有效的bean)nimport org.springframework.beans.BeansException;nimport org.springframework.context.ApplicationContext;nimport org.springframework.context.ApplicationContext
spring线程池在新的线程中获取不到注入的实例
使用线程池后,在新创建的线程中获取不到spring的实例Bean,解决方案备忘记录。
Spring基础学习(一,XMLnew实例对象,实例对象调用其他类)
与mybatis和hibernate一样先导入架包n 建立类,项目大致类和包如下nnnBookServiceImpl 类nnnpublic class BookServiceImpl implements BookService{n //之前开发:接口 = 实现类 (service和dao耦合)n //private BookDao bookDao = new BookDaoImpl();...
spring 手动使用代码注入bean
rn直接上代码 很简单一看就懂了rn rn rn这是我自写的一个与mybatis类似的orm框架与spring集成的两个主要的类,希望能给和同样想自造轮子的童鞋抛出一块砖头rn rnBeanFactoryrn rnpackage org.smile.orm.spring;rnrnimport org.smile.orm.dao.MapperProxy;rnimport org.springfram...
springboot对象注入IOC容器的三种方式
Springboot会自动加载resources文件下面的application.yml或者application.properties配置文件,因为yml格式可以替代xml格式,功能properties更强大,所以一般都使用yml格式进行书写。nn1.对于yml中加载了的bean,可以使用 @value(${对象}) 进行注入。nn2.也可以在需要加入到spring容器中的类上加@Compone...
SpringBoot 测试类注入对象失败
https://blog.csdn.net/persistencegoing/article/details/84376427nnnn一直没法自动注入,后来在@SpringBootTest,加入启动类Application后就可以了nnn@RunWith(SpringRunner.class)n@SpringBootTest(classes = Application.class)nnn...
在多线程中注入spring对象
以前一般很少用多线程处理些问题,今天遇到一个问题,在kafka的消费端,我是启的多线程去消费kafka的数据,其中在多线程的业务代码中注入了server层的对象,但是在实际执行的时候却发现注入不了,然后检查spring的xml 包扫描的配置,发现配置没有问题,后面才发现在多线程的线程内部不能注入spring容器所管理的对象,细想一下: 应该是因为在web容器启动的时候,spring并不能感知还未执...
【初识Spring】对象(Bean)实例化及属性注入(xml方式)
初识Spring之Bean实例化及属性注入nn1.通过xml配置的方式进行实例化。 n- 配置文件中bean标签的常用属性 n- 通过无参构造(常用) n- 使用静态工厂进行创建 n- 使用实例工厂进行创建nn2.属性注入。 n- 使用有参数构造方法注入属性 n- 使用set方法注入属性(常用) n- 注入对象类型属性 n- 注入复杂类型属性nnnnxml配置的方式进行实例化nnn配置文件中bea...
spring之对象属性的注入和对象注入
这篇是接上一篇文章的后续。nn上篇文章链接spring之创建一个spring简单实例nn在spring中,常用属性的注入有三种。nn一:通过构造方法来注入nn①.首先在User类里面写一个构造方法,注意:此构造方法需和你xml声明bean时所用的相同。nnnpublic class User {n private String name;n public User(String name) {n ...
Spring依赖注入方式---- 构造方法注入
rnSpring通过构造方法依赖注入rn1.  创建一个Personrn rnpackage com.spring.bean;rnpublic class Person {rn private String name;rn private String address;rn private double height;rn private int weight;rn rn public Perso...
springBoot @Autowired注入对象为空原因总结
BankDAO类内容如下:npackage com.wiseco.engine.dao;nnnController中内容:ncacheTableMap.get(tableName)值为:com.wiseco.engine.dao.BankDAOnn结果调用controller执行refreshCache函数时报空指针异常,通过debug模式跟踪发现以下地方cacheJob对象是null。nn分析后...
bean交个spring和new比较区别
在spring的配置文件中我们要使用DataSource这个对吧nn这个bean将会被多个bean引用   通过ref="dateSource"这个引用  当我们要修改这个只要修改引用就好了  不需要修改很多了  nn nn 主要是解耦n比如你有一个A类 在好几个类里边要调用到A的方法 new的话就要在每个类里都new A()nspring的话 只要配置一个bean进行注入就够了。n哪天你不用A类...
spring注入的对象报null的原因
领导要求做项目移植,即把现有的项目中的部分内容移植到新项目中,技术是一样的,采用spring做依赖注入,我开始做的时候一直报nullpoint,debug打断点跟下来发现是当前调用的routeService报null,检查路径没有错,鼠标点击也能跳转到routeService类,我突然想起是不是我忘了做bean注入,我找到spring.xml文件,将routeServie注入进去:rn[c...
Spring属性注入之set方法注入对象
应用场景:需要在Service中调用Dao的show方法1.编写Service和Dao类Dao类npackage com.maty.property; n/** n* @author maty e-mail:512181558@qq.comn* @version 创建时间:2018年5月16日 下午3:37:12 n* 类说明n*/npublic class Daon{n public void...
Spring 中 Bean 中通过实现 Aware 接口的方式可以自动注入哪些资源
package sping.analysis.aware;nnimport java.util.Locale;nnimport org.springframework.beans.BeansException;nimport org.springframework.context.ApplicationContext;nimport org.springframework.context.Appl...
分析spring boot中几种常见的依赖注入问题
最近有空总结一下之前在使用spring boot时遇到过的几种依赖注入时的坑,如果了解spring内部的处理过程,使用起来总是感觉有种迷糊。rn在分析场景前,需要大概了解一下spring对于bean的实例化过程是需要先注册BeanDefinition信息然后才进行实例化,在org.springframework.context.support.AbstractApplicationContext#r...
细说Spring——IoC详解(FactoryBean、方法注入和方法替换)
这篇文章我们主要来学习一下FactoryBean、方法注入和方法替换。nnnn一、FactoryBeannn先给出一下比较官方的定义:nnnnA FactoryBean is a pattern to encapsulate interesting object construction logic in anclass. It might be used, for example, to enc...
多线程时Autowired自动注入问题
在多线程时使用@Autowired总是获取不到bean,原因是:new thread不在spring容器中,也就无法获得spring中的bean对象。rn解决方法:手动获取rnpackage com.test.configs;nnimport org.springframework.beans.BeansException;nimport org.springframework.context.A
Spring @Autowired 注入对象为空
    记录一个常见的Spring @Autowired 注入对象为空的情况:n    其余代码一切按照规范来写的,但是注入对象的那个类本身,没有通过Spring注入的方式来构建,而是通过new构造,这样会导致其Autowired 的对象为空。这是因为其本身没有交由Spring 的IOC容器进行管理,而是由JVM构建,所以Spring将无法将其本身管理的对象注入进去。nnThe IoC conta...
Struts2,action中用spring注入,启动服务时注入成功,action运行时对象又变成null了
在软件群中遇到一个求助者:n 问各位大神一个问题,ssh框架里,action中用spring注入,启动服务时注入成功,action运行时对象又变成null了,这是怎么回事啊?nn问题所在:n看了他的配置文件后发现他用spring的依赖注入,在applictionContext.xml配置了相关的bean,但是在struts2的文件中配置action时使用的是类的全路径,没有引用spring
【Spring错误笔记】自己new出来的bean中被@Autowired注解修饰的属性报空指针异常:java.lang.NullPointException
自己new出来的bean实例下的@Autowired属性报空指针异常rnrnrnrnrnrn异常描述rnrn原本我再测试RabbitMQ的发送程序,里面用到了一个AmqpTemplate接口,用了@Autowired注解。但是当我使用AmqpTemplate的convertAndSend()方法时却总报空指针异常 :java.lang.NullPointExceptionrnrnrnrn错误代码rnrn修改过的可重现问题代码...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 web注入渗透教程 区块链问题