Spring注解
注解方式
使用注解的方式完成IOC
1.配置注解扫描
<?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"> <!-- 开启注解扫描 扫描com.test包以及所有子包中的文件 --> <context:component-scan base-package="com.test" /> </beans>
2.常用的注解
2.1用来创建对象的注解
@Component
创建一个对象(组件)
@Service
创建service层对象
@Controller 创建控制层对象 //默认会创建一个DrinkService的对象 对象的名字为drinkService (类名的首字母小写) @Service //也可以设置自己制定的对象名 @Service("自己制定的对象名") public class DrinkService implements IDrinkService { }
2.2用来注入的注解
2.2.1注入对象的方式1
@Autowired
根据类型自动注入
@Qualifier(“对象名”) 如果满足自动注入的对象有多个,可以通过@Qualifier()设置具体的对象名 //自动注入 @Autowired //指定注入的对象(如果满足注入对象有多个的时候) @Qualifier("oracleDrinkDao") private IDrinkDao drinkDao; public IDrinkDao getDrinkDao() { return drinkDao; } //也可以在set方法上设置自动注入 public void setDrinkDao(IDrinkDao drinkDao) { this.drinkDao = drinkDao; }
2.2.2注入对象的方式2
@Resource(name="对象名") 根据对象名注入,作用相当于@Autowired+@Qualifier("对象名") //自动注入方式2 @Resource(name="oracleDrinkDao") private IDrinkDao drinkDao; public IDrinkDao getDrinkDao() { return drinkDao; } public void setDrinkDao(IDrinkDao drinkDao) { this.drinkDao = drinkDao; }
2.2.3注入普通值
**@Value("数值")**相当于 @Value(value="数值") @Component public class Drink { @Value("橙汁") private String name; @Value("半糖") private String sugar; @Value("18") private float price;