我可以这样说吗?context:annotation-config
在我的 XML 配置中,它会自动注入 bean 类而不需要任何注释?
因此,不要使用这些注释类型:
public class Mailman
{
private String name;
@Autowired
private Parcel Parcel;
public Mailman(String name)
{
this.name = name;
}
@Autowired
public void setParcel(Parcel Parcel)
{
this.Parcel = Parcel;
}
@Autowired
public void directionsToParcel(Parcel Parcel)
{
this.Parcel = Parcel;
}
}
我只需要写这个:
<beans ... >
<bean id="mailMan" class="MailMan">
<constructor-arg value="John Doe"/>
</bean>
<bean id="parcel" class="Parcel" />
<context:annotation-config />
</beans>
然后我的 MailMan 类看起来会简单很多,不需要注释:
public class Mailman
{
private String name;
private Parcel Parcel;
public Mailman(String name)
{
this.name = name;
}
}
默认情况下,Spring 上下文不会关注@Autowired
注释。为了处理它们,上下文需要有一个AutowiredAnnotationBeanPostProcessor
bean 在上下文中注册。
<context:annotation-config/>
为您注册其中之一(以及其他一些),因此您确实需要它(除非您注册AutowiredAnnotationBeanPostProcessor
你自己,这是完全有效的)。
如果你不喜欢拥有@Autowired
在您的代码中,然后您可以使用以下命令在 XML 中显式注入属性<property>
,这只是将混乱从一个地方移动到另一个地方。
如果你的上下文是极其简单,那么您可以使用隐式自动装配,如上所述here。本质上,这告诉 Spring 按属性名称或类型自动装配。这需要很少的配置,但它很快就会失去控制 - 它的自动性质意味着它很难控制,并且给您带来很少的灵活性。
@Autowired
一般来说,确实是最好的选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)