(一)、配置文件(常用标签及作用)
1、<context:component-scan>和<context:annotation-config/>
spring就会去自动扫描base-package对应的路径或者该路径的子包下面的java文件,如果扫描到文件中带有@Service,@Component,@Repository,@Controller等这些注解的类,则把这些类注册为bean。注:如果配置了<context:component-scan>那么<context:annotation-config/>标签就可以不用在xml中再配置了,因为前者包含了后者。
2、<context:property-placeholder/>
<context:property-placeholder location="classpath:conf/*.properties" />
3、<context:component-scan />
<!-- 自动扫描标记@Controller的控制器类 -->
<context:component-scan base-package="com.e3mall.portal.controller" />
4、<mvc:annotation-driven />
<!-- 自动加载RequestMappingHandlerMapping和RequestMappingHandlerAdapter -->
<mvc:annotation-driven />
(二)类中的操作(以service层和dao层为例)
1、service层(不用提供get set方法)
2、dao层
注:前面@Resource(name="userDao") private UserDao ud;中的userDao在dao层已经把UserDaoImpl对象交给spring管理了。
3、之前的错误理解
TestPojo为单独书写的一个类,类上未添加注解,测试结果为:testPojo.test();空指针。
注释掉这一行之前的代码为:UserDao为一个接口,myTest方法在实现类中具体实现了,并且在实现类中加上了@Repository("userDao")注解。
由此可见: @Resource(name="userDao") // 通过此注解完成从spring配置文件中查找名称为userDao的bean来装配字段userDao,如果spring配置文件中不存在userDao名称的bean则转向按照bean类型经行查找。
4、另外一个实例
解释:JedisClient为一个接口,JedisClientCluster为实现类
结论:要想用此实例----需要一个接口 一个实现类 ,@Autowired(@Resource等同)只是用来装配这个字段,关键还是要将对象交给spring管理,此例中在配置文件中使用bean的方式实例化了该对象,上面一个例子使用注解的方式实例化了对象。