applicationContext.xml配置文件
beans 标签里面引入命名空间 步骤:复制xmlns 然后修改名称为命名空间名字
- xmlns:名称=“http://www.springframework.org/schema/名称”
- http://www.springframework.org/schema/名称
http://www.springframework.org/schema/名称/spring-名称-3.2.xsd
<?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.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<!-- 自动注解扫描 -->
<context:component-scan base-package="mybatisDemo" />
</beans>
接口实现类中的注解
- @Autowired //找相同类型的对象名 称和类型的默认对象名相同 除非取别名
- @Qualifier(“名称”)//只找对象名和属性名一样 在这个类有多个对象时使用 通过名称可指定对象
- @Resource//先找名称相同,再找类型
@Component 注解
创建一个注解的对象存入上下文中
@Component(“对象名”)
创建一个指定对象名的对象
@Transactional 注解管理事务
标注该类有事务管理
@Autowired 和 @Qualifier(“名称”) 注解
@Component
public class PrinterImpl implements Printer {
//方法一
@Autowired//找相同类型的对象
@Qualifier("名称")//指定对象的名称
private Ink ink;
//方法二
@Autowired
public PrinterImpl(@Qualifier("inkImpl") Ink ink,
@Qualifier("a4Page") Page page) {
this.ink = ink;
this.page = page;
}
}
@Resource 注解
@Resource//先找名称相同,再找类型
private Ink ink;
@Scope(“prototype”)
@Transactional
@Scope("prototype")
@Service("userService")
public class UserServiceImpl implements UserService {
}
- @Scope(“prototype”)//多实例,IOC容器启动创建的时候,并不会创建对象放在容器在容器当中,当你需要的时候,需要从容器当中取该对象的时候,就会创建。
- @Scope(“singleton”)//单实例 IOC容器启动的时候就会调用方法创建对象,以后每次获取都是从容器当中拿同一个对象(map当中)。
- @Scope(“request”)//同一个请求创建一个实例
- @Scope(“session”)//同一个session创建一个实例