Spring入门系列之基于Annotation的bean

x33g5p2x  于2021-03-14 发布在 Spring  
字(1.7k)|赞(0)|评价(0)|浏览(302)

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

相关文章