Spring框架-six(XML方式重构三层结构)-seven(注解方式重构三层结构)
06-【熟悉】XML方式重构三层结构
重构的例子见02_spring_hello
对象属性的自动装配
autowire
|–byType 根据对象里面需要的属性的类型去IOC容器里面去匹配
|–byName 根据对象里面需要的属性名称 去IOC容器里面找id=属性名的对象去装配
07-【掌握】注解方式重构三层结构
1.修改UserAction
2.修改UserServiceImpl
3.修改UserDaoImpl
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容器里面找有没有相关属性类型的对象,如果有,就自动注入