- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spring学习之依赖注入(通过注解的方式)
通过注解的方式给对象注入属性
通过Spring的xml配置文件可以定义一个bean,其定义一个bean的方式如下 bean id=”取名” class=”类的全限定名称”
/bean
然而通过注解的方式也可以定义一个bean
有四种注解可以定义一个bean,通常认为的分配在不同的层面上,但是它们的作用是完全一样的
//通过以下方式可以定义一个bean,
@Component
@Controller //声明在控制层的bean
@Service //声明在业务层的bean
@Repository //声明在数据访问层的bean”包名”/context:component-scan
@Repository
public class UserDao {
}
这样便表示定义一个bean就如在xml文件中bean id=”userDao” class=” com.workit.h_annotion01.UserDao”
/bean
和②的效果是一样的,
如果使用注解引用一个对象,首先需要使用注解关键字定义,表示纳入Spring容器管理,然后在引用对象的那一方在引用的对象上加上注解@Resource表示注入属性:
例如:在UserService中引用UserDao对象:
首先:将连个类纳入Spring容器管理:
由于
UserDao是数据库访问层,在UserDao的实现类上使用@Repository注解
UserService是业务逻辑层,使用@Service注解
在UerService中引用了UserDao对象,需要在属性字段上加上@Resource注解,表示表示给UserService注入UserDao对象属性:
接口UserDao:
public interface UserDao {
public void printInfo();
}
===========================================================================================
UserDao的实现类UserDaoImpl:
@Repository
public class UserDaoImpl implements UserDao{
@Override
public void printInfo() {
System.out.println(使用注解:这是UserDao的实现类);
}
}@Service
public class UserService {
@Resource (表示给UserService注入UserDao对象属性)
private UserDao userDao;
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
==========================================================================================
测试结果:
public class TestAnnotation {
@Test
public void testDefinedBean(){
ApplicationContext ac = new ClassPathXmlApplicationContext(applicationContext.xml,this.getClass());
UserService userService = (UserService)ac.getBean(userService);
userService.getUserDao().printInfo();
}
}
使用注解:这是UserDao的实现类
文档评论(0)