Spring_IOC_Component
1.目录结构

2.User
package com.cloud.spring.model; /** * @author cloud * @data 2016年5月13日 * @version 1.0 * @description:普通的JavaBean */ public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
3.UserDAO
package com.cloud.spring.dao; import com.cloud.spring.model.User; /** * @author cloud * @data 2016年5月13日 * @version 1.0 * @description:定义接口,定义规范,必须实现save方法 */ public interface UserDAO { public void save(User user); }
4.UserDAOImpl
package com.cloud.spring.dao.imp; import org.springframework.stereotype.Component; import com.cloud.spring.dao.UserDAO; import com.cloud.spring.model.User; /** * * @author cloud * @data 2016年5月13日 * @version 1.0 * @description:实现接口,重写方法 */ // UserDAOImpl 需要注入到UserService中,所以需要Spring容器进管理 // 因此需要使用@Component注解 @Component public class UserDAOImpl implements UserDAO { public void save(User user) { System.out.println("user saved!"); } }
5.UserService
package com.cloud.spring.service; import javax.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.cloud.spring.dao.UserDAO; import com.cloud.spring.model.User; /** * * @author cloud * @data 2016年5月13日 * @version 1.0 * @description:真正的业务处理 */ //userService需要Spring容器进管理,因此需要使用@Component注解 @Component("userService") public class UserService { private UserDAO userDAO; public void add(User user) { userDAO.save(user); } public UserDAO getUserDAO() { return userDAO; } //从Spring容器中取出管理的UserDAOImpl实例,注入到UserService中 @Resource public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } }
6.TestSpring
package com.cloud.spring.test; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.cloud.spring.model.User; import com.cloud.spring.service.UserService; public class TestSpring { public static void main(String[] args) { try { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); // 尽管在配置文件中并没有声明userService,但是由于使用了@Component注解,因此可以获取 UserService service = (UserService) ctx.getBean("userService"); service.add(new User()); } catch (BeansException e) { e.printStackTrace(); } } }
7.beans.xml
<?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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 在配置文件中不需要声明任何的bean,直接在源码中需要Spring容器进行处理的bean加Component即可 --> <!-- 对于依赖注入的地方只需要在对应的Set方法上使用@Resource注解即可 --> <context:component-scan base-package="com.cloud.spring"></context:component-scan> </beans>
    http://www.cnblogs.com/makexu/

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号