Interface A<T1,T2>{
public T1 getSome(T2 input);
}
Class B implements A<C,D>{
@Override
public D getSome(C input){
// Do something
return D;
}}
@Configuration
public Class BConfig{
@Bean
public A b(){
return new b();
}}
@Configuration
Class AppConfig(){
@Inject
private A b
public App app(){
return new App(b);
}}
public Class App{
A b;
public App(A b){
this.b=b;}
public void doSome(){
C c=new C();
D d=b.getSome(c);
}
}
A<C,D> b;
或
A b;
因为bean注入将注入A的实现,在spring配置中是B。我不想指定泛型类型,因为这会稍微违背使用泛型的目的。
Spring autowires bean按类型、限定符和名称。
这取决于你想如何使用它们。如果您定义它们时没有泛型,您将使用java.lang.Object,这意味着当您需要在某些类中使用这些逻辑时,您将强制转换为某些类型
使用泛型就不会有这样的问题。
@Configuration
public class BConfig{
@Bean
public A<C,D> b(){
return new B();
}
}
@Component
public class E {
@Autowired
private A<C,D> b;
}
spring日志中的info消息显示: 示例: 下面有一个简单的示例,可以使用。这里,Bar是嵌套在Foo内部的,我需要模拟Bar进行测试: 现在对于测试来说,假设我想注入一个mockbar而不是真正的bar。我如何在下面的测试类中实现这一点? 实际测试用例:
问题内容: 我有一堆Spring bean,它们是通过注释从类路径中拾取的,例如 我想将app.properites的属性之一注入到上面显示的bean中。我不能简单地做这样的事情 因为PersonDaoImpl在Spring XML文件中没有功能(它是通过注释从类路径中拾取的)。我有以下内容: 但是我不清楚我如何从中访问我感兴趣的财产? 问题答案: 你可以在Spring 3中使用EL支持进行此操作
结果是- 属性BeanA和BeanB只是字符串值,那么如何指定bean名称呢?
本文向大家介绍Spring @Bean注解配置及使用方法解析,包括了Spring @Bean注解配置及使用方法解析的使用技巧和注意事项,需要的朋友参考一下 使用说明 这个注解主要用在方法上,声明当前方法体中包含了最终产生 bean 实例的逻辑,方法的返回值是一个 Bean。这个 bean 会被 Spring 加入到容器中进行管理,默认情况下 bean 的命名就是使用了 bean 注解的方法名。@B
问题内容: 我有一堆Spring bean,它们是通过注释从类路径中拾取的,例如 在Spring XML文件中,定义了一个PropertyPlaceholderConfigurer: 我想将app.properites的属性之一注入到上面显示的bean中。我不能简单地做这样的事情 因为PersonDaoImpl在Spring XML文件中没有功能(它是通过注释从类路径中拾取的)。我有以下内容: 但
我想:1。initbean工厂(如果找不到值,则可能为null)2。自动连接并由bean绑定使用 但现在我有个例外 所以我想要的是在装订中使用工厂,如何制作?谢谢