如果采用注解方式,下面代码
<!-- Inform Spring to scan the annotation within codes for DI requirements -->
<context:annotation-config/>
<!-- Inform Spring to scan the injectable components base on packages -->
<
context:component-scan
base-package
=
"com.apress.prospring3.ch4.annotation;com.apress.prospring3.ch4.annotation1"
>
<
context:exclude-filter
type
=
"assignable"
expression
=
"com.apress.prospring3.ch4.annotation1.Bean2"
/>
</
context:component-scan
>
自动扫描有下面注解的类:
@Component,@Controller,@Repository,@Service
@Service("messageRenderer" )
public
class
StandardOutMessageRenderer
implements
MessageRenderer {
@Autowired
在构造方法上添加
@Autowired,只能在一个构造方法上,然后要创建一个bean,用作构造方法的参数,下面用index方式创建
<bean id = "message" class="java.lang.String"
c:_0="this is a c:_0"/>
在Setter方法上
@Autowired
//@Resource(name="messageProvider") // Effect is the same as Autowired
public
void
setMessageProvider(MessageProvider provider) {
this
.
messageProvider
= provider;
}
@Value,注入SpEL表达式
@Value("${app.ctx}")
private String _ctxPath;
@PostConstruct和PreDestroy:通过注解指定初始化和销毁方法定义