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
- 前言
- 一、Ioc控制反转注入原理
- 二、Ioc控制反转集合注入和Scope
- 三、Bean的懒加载和生命周期
- 四、基于Annotation的bean
- 五、Spring容器组建注解@Component和Resouces实现完全注解配置
- 六、Spring自动装配注解@Autowired
- 七、Spring Aop的理解和简单实现
- 八、Spring Aop织入点语法和相关案例总结
- 九、Spring Aop 用xml的方式实现
- 十、Spring DBCP用xml和properties2种格式配置DataSource
- 十一、Spring整合Hibernte
- 十二、Spring中Annotation声明事务
- 十三、Spring中Xml声明事务
- 十四、Spring中hibernateTemplate的使用