Spring框架-six(XML方式重构三层结构)-seven(注解方式重构三层结构)

06-【熟悉】XML方式重构三层结构

重构的例子见02_spring_hello

对象属性的自动装配
Spring框架-six(XML方式重构三层结构)-seven(注解方式重构三层结构)
autowire
|–byType 根据对象里面需要的属性的类型去IOC容器里面去匹配
|–byName 根据对象里面需要的属性名称 去IOC容器里面找id=属性名的对象去装配

07-【掌握】注解方式重构三层结构

1.修改UserAction

Spring框架-six(XML方式重构三层结构)-seven(注解方式重构三层结构)

2.修改UserServiceImpl

Spring框架-six(XML方式重构三层结构)-seven(注解方式重构三层结构)

3.修改UserDaoImpl

Spring框架-six(XML方式重构三层结构)-seven(注解方式重构三层结构)

4.修改applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	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">

<!-- <context:component-scan base-package="com.sxt.dao.impl">
</context:component-scan>
<context:component-scan base-package="com.sxt.service.impl">
</context:component-scan>
<context:component-scan base-package="com.sxt.action"></context:component-scan>
 -->

<context:component-scan base-
package="com.sxt.dao.impl,com.sxt.service.impl,com.sxt.action">
</context:component-scan>

</beans>

5.测试

public class TestPro {

	public static void main(String[] args) {
		//创建Spirng的工厂对象
		ApplicationContext context=new  ClassPathXmlApplicationContext("
		classpath:applicationContext.xml");
		//从IOC容器里面取对象
//		UserAction userAction=(UserAction) context.getBean("userAction");  
//userAction 指<bean id="userAction">
//		userAction.loadUserById();
		UserAction userAction = context.getBean(UserAction.class);
		userAction.loadUserById();
		
	}
}

6.总结

注解
@Component 作用于类上,用于告诉IOC容器去创建当前类的对象
@Controller 作用于类上,用于告诉IOC容器去创建对象并标记这个对象是一个请求的控制器
@Service 作用于类上,用于告诉IOC容器去创建当前类型的对象并标签这个对象是一个业务处理类
@Repositor 作用一类上,用于告诉IOC容器去创建当前类的对象并标签这个类是数据访问层的对象
属性注解
@Autowired 可能作用于属性 方法 构造方法 注解类型上
|–自动从IOC容器里面找有没有相关属性类型的对象,如果有,就自动注入