四、基于Annotation的bean

最后更新于:2022-04-01 11:38:13

Annotation: Dtd和xsd约束了xml文件的语法。这里引入了context前缀的标签语法.用来使用注解 通过引入context标签。运用注解来注入。请看下面的代码案例: 详细请看注释 1、 Xml代码: ~~~ <?xml version="1.0" encoding="UTF-8"?> <!-- xsd文件,约束本xml可以用的标签 --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <!-- 运用上面引入的命名空间标签.初始化了4个bean 1、AutowiredAnnotationBeanPostProcessor 2、CommonAnnotationBeanPostProcessor 3、PersistenceAnnotationBeanPostProcessor 4、 RequiredAnnotationBeanPostProcessor --> <context:annotation-config/> <bean id="userDao" class="com.spring.dao.UserDaoImpl"></bean> <bean id="userService" class="com.spring.service.UserServiceImpl"> <property name="userDao" ref="userDao"></property> </bean> <bean id="userAction" class="com.spring.action.UserAction"> </bean> </beans> ~~~ 2、 Java代码: ~~~ public class UserAction { private UserService userService; //Autowired使用的是byType类型的注入。如果配置文件中有两个bean的话那么将出现异常 @Autowired //@Qualifier的value属性可以指定bean的name。这样的话就不怕配置2个bean和byName的原理一样。@AutoWired和@Qualifier配合使用可以 public void setUserService(@Qualifier(value="userService") UserService userService) { this.userService = userService; } public void addUser(){ userService.HelloWorld(); } } ~~~ 另外还有一个注解是@Required。在这里就不多说了。其实有和没有的意义都不是很大。大家有兴趣的话可以看一看Spring的API
';