
答:你应该在类上面加上@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怎么注入等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)