Spring框架的注解版
说明:上次些的spring框架的配置版本,请在我的的Spring框架第一天学习总结(1),本文在此不再复述。
一、注解版说明
- 注解的原理和配置xml中的bean标签,property标签是相同的,注解的本质就是封装好的方法的调用。
- 类的注解相当于在xml中配置bean标签,利用反射的原理实例化对象
- 属性的注解相当于xml中配置property标签,借助反射实现为属性赋值。
- 使用属性注解不需要提供set方法
二、类的注释有四个:
1、通用型:@Componet
2、Dao层:@Repository
3、service层:@Service
4、Web层:@Controller
三、属性的注释常用的有四个
1.@value简单的数据类型
2.@Autowired 引用数据类型(通常理解我就是存储在spring框架中的容器中搜索匹配类型的对象来赋值)
3.@Resource当有多张表的时候,你需要区分,可以用@Resource(name=“ ”)与你所需要匹配的对象进行匹对
4.@Qualifier("***")是与你需要匹配的对象进行确认,必须与@Autowired配用。
四、演示
1.service层
@Service
public class ToursService implements IToursService {
@Autowired
private IToursDao dao;
@Override
public void add(Toursinfo tours) {
dao.add(tours);
}
}
2.dao层
@Repository
public class ToursDaoImpl implements IToursDao {
@Override
public void add(Toursinfo tours) {
System.out.println("模拟实现新增");
System.out.println(tours);
}
}
3.applicationContext配置文件
(1)注解版的配置文件需要在约束中添加 context 约束
(2)需要开启注解扫描–让注解生效
<!--注解默认都是关闭的,使用包扫描的形式,开启包中所有的注解-->
<context:component-scan base-package="com.kgc"/>
4.测试类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/applicationContext.xml")
public class TestSpring {
@Autowired
private IToursService service;
@Value("tom")
private String name;
@Test
public void test2(){
Toursinfo t = new Toursinfo();
t.setIntroduce("魅力中国");
service.add(t);
System.out.println(name);
}
}