• 反对抄袭 正解spring的@Autowired 不要相信网上的错误版本


    首先,最重要的, @Autowired的就是用来来消除 set ,get方法.


    有些介绍,如著名的马士兵,说要在set方法上进行注入.我当时就看不明白了,既然只取消了一个GET,这个@Autowired还有什么屁用.不是瞎折腾么.还要用@Qualifier来帮忙指定BEAN.

    如下:

    //	@Autowired
    //	public void setUserDAO(@Qualifier("userDAOImpl") UserDAO userDAO) {
    //		this.userDAO = userDAO;
    //	}

    后来自己试了一下,在SPRING2.5和3.0下,都不用这样.


    直接使用

    Autowired 即可

    	
    	@Autowired
    	private UserDAO userDAO;

    也不需要在applicationContext.xml中加入:

        <!-- 该 BeanPostProcessor 将自动对标注 @Autowired 的 Bean 进行注入 -->  
        <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

    贴出我的SPRING配置文件


    <?xml version="1.0" encoding="UTF-8"?>
    <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-3.0.xsd
               http://www.springframework.org/schema/context
               http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    	<context:annotation-config />
    	
      <bean id="userDAOImpl" class="com.bjsxt.dao.impl.UserDAOImpl">
      
      </bean>
      
    
    	
      <bean id="userService" class="com.bjsxt.service.UserService" >
    
      </bean>
    
      
    </beans>


    public class UserService {
    	
    	@Autowired
    	private UserDAO userDAO;  
    		
    	public void add(User user) {
    		userDAO.save(user);
    	}
    	
    //	@Autowired
    //	public void setUserDAO(@Qualifier("userDAOImpl") UserDAO userDAO) {
    //		this.userDAO = userDAO;
    //	}
    }

    public class UserServiceTest {
    
    	@Test
    	public void testAdd() throws Exception {
    		
    		ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");	
    		UserService service = (UserService)ctx.getBean("userService");
    		service.add(new User());
    		
    		
    	}
    
    }
    




  • 相关阅读:
    中断类型表
    ComboBox中Datasource、 DisplayMember和ValueMember 三个属性问题 初学者
    ComboBox中的 DataSourc、 DisplayMember 、 valueMember 属性顺序设置问题 初学者
    皮尔逊相关度评价(Pearson correlation Score)
    欧几里得距离评价(Euclidean Distance Score)
    Leonardo da Vince
    维基F#译文: 值与函数(中)
    维基F#译文: 值与函数(上)
    perl5的引用(perlreftut)
    维基F#译文:入门
  • 原文地址:https://www.cnblogs.com/xiaowangba/p/6314220.html
Copyright © 2020-2023  润新知