使用值方法将名称设置为 Bean
Set Name to Bean with value method
在使用bean注解的value或name方法时给bean设置名称有什么不同吗
@Configuration
public class OperationConfig {
@Bean(name = "test")
public IOperation getOperation()
{
return new IntMultiplyOperation();
}
}
或
@Configuration
public class OperationConfig {
@Bean("test")
public IOperation getOperation()
{
return new IntMultiplyOperation();
}
}
Spring 可以用这个构造函数捕获他们两个
@Configuration
public class ApplicationRunnerConfig {
private final IOperation m_operation;
public ApplicationRunnerConfig(@Qualifier("test") IOperation operation)
{
m_operation = operation;
}
}
没有任何字段引用的注释映射到 value 属性,并且在 @Bean 注释中 value is alias for name 两种方式是相同的。
这些方法之间没有区别。 Spring 默认情况下将括号中的字符串参数设置为名称参数。
他们做同样的事情。看看 @Bean
接口文件:
public @interface Bean {
@AliasFor("name")
String[] value() default {};
@AliasFor("value")
String[] name() default {};
}
他们使用 @AliasFor
,这是一个 Spring 注释,表明这些属性可以互换使用。
在使用bean注解的value或name方法时给bean设置名称有什么不同吗
@Configuration
public class OperationConfig {
@Bean(name = "test")
public IOperation getOperation()
{
return new IntMultiplyOperation();
}
}
或
@Configuration
public class OperationConfig {
@Bean("test")
public IOperation getOperation()
{
return new IntMultiplyOperation();
}
}
Spring 可以用这个构造函数捕获他们两个
@Configuration
public class ApplicationRunnerConfig {
private final IOperation m_operation;
public ApplicationRunnerConfig(@Qualifier("test") IOperation operation)
{
m_operation = operation;
}
}
没有任何字段引用的注释映射到 value 属性,并且在 @Bean 注释中 value is alias for name 两种方式是相同的。
这些方法之间没有区别。 Spring 默认情况下将括号中的字符串参数设置为名称参数。
他们做同样的事情。看看 @Bean
接口文件:
public @interface Bean {
@AliasFor("name")
String[] value() default {};
@AliasFor("value")
String[] name() default {};
}
他们使用 @AliasFor
,这是一个 Spring 注释,表明这些属性可以互换使用。