spring 注解报错No unique bean of type,怎么解决

spring 注解报错No unique bean of type,怎么解决,第1张

答:你应该在类上面加上@Compnnent这个注解,注入到bean里面;或者注意 class的路径不要写错即可不出错。

一、注解策略:

(1)类级别的注解:如@Component、@Repository、@Controller、@Service以及JavaEE6的@ManagedBean和@Named注解,都是添加在类上面的类级别注解。Spring容器根据注解的过滤规则扫描读取注解Bean定义类,并将其注册到Spring IoC容器中。

(2)类内部的注解:如@Autowire、@Value、@Resource以及EJB和WebService相关的注解等,都是添加在类内部的字段或者方法上的类内部注解。SpringIoC容器通过Bean后置注解处理器解析Bean内部的注解。 Spring实现@Autowire解析和注入的核心的类是通过。

二、AutowiredAnnotationBeanPostProcessor来实现的。我们可以通过其方法列表看出,其中对字段的注入,对属性的注入,还有选择相应的构造方法来注入。

1:从构造方法的缓存中查询其构造方法。

2:若缓存中不存在,则根据反射获取所有构造方法。

3:遍历所有构造方法,查询器是否含有@Autowired属性。

4:判断Autowired注解中指定了required属性 (required属性就是判断是否强依依赖)若存在required就使用默认构造方法。

5:返回指定的构造方法 注入的时候则是通过inject方法来实现。

一 什么是Spring

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架

二 如何在程序中获取Spring配置的bean呢

方法一 在初始化时保存ApplicationContext对象

代码

ApplicationContext ac = new FileSystemXmlApplicationContex( applicationContext xml );     ac getBean( beanId );

ApplicationContext ac = new FileSystemXmlApplicationContex( applicationContext xml );

ac getBean( beanId );说明 这种方式适用于采用Spring框架的独立应用程序 需要程序通过配置文件手工初始化Spring的情况

方法二 通过Spring提供的工具类获取ApplicationContext对象

代码

import sprntext support WebApplicationContextUtils;      ApplicationContext ac = WebApplicationContextUtils                                 getRequiredWebApplicationContext(ServletContext sc)      ApplicationContext ac = WebApplicationContextUtils                                 getWebApplicationContext(ServletContext sc)      ac getBean( beanId );      ac getBean( beanId );   import sprntext support WebApplicationContextUtils;      ApplicationContext ac = WebApplicationContextUtils                                 getRequiredWebApplicationContext(ServletContext sc)      ApplicationContext ac = WebApplicationContextUtils                                 getWebApplicationContext(ServletContext sc)      ac getBean( beanId );      ac getBean( beanId );

方法三 继承自抽象类ApplicationObjectSupport

说明 抽象类ApplicationObjectSupport提供getApplicationContext()方法 可以方便的获取到ApplicationContext Spring初始化时 会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入

方法四 继承自抽象类WebApplicationObjectSupport

说明 类似方法三 调用getWebApplicationContext()获取WebApplicationContext

方法五 实现接口ApplicationContextAware

lishixinzhi/Article/program/Java/ky/201311/28587

首先方法要携带参数。fun(param1,param2);

最后调用fun方法时候,通过反射调用,后面携带bean实例对象 methodinvoke(obj,param1,param2)

以上就是关于spring 注解报错No unique bean of type,怎么解决全部的内容,包括:spring 注解报错No unique bean of type,怎么解决、Java中如何获取Spring中配置的bean、java反射方法时,方法里面的需要其他的bean怎么注入等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9514511.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存