Java配置

  • Spring4推荐使用java配置实现IOC
  • Spring boot也推荐采用java配置实现IOC
  • 在实际项目中,一般采用注解配置业务bean,全局配置使用Java配置。

Java配置使用的注解

  • @Configuration:声明当前类为配置类,配置类等效于spring配置xml文件。
  • @Bean:声明在方法上,方法返回值为Bean。

示例代码

特点:dao和service层不再使用注解

dao的代码

package com.etc.dao;

import org.springframework.stereotype.Repository;

public class EntityDao {

	public String getData(){
return "get data from database";
}
}

  

service的代码

package com.etc.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.etc.dao.EntityDao; public class EntityService { private EntityDao entityDao; public String getData(){
return entityDao.getData();
} }

 

Java配置类的代码

package com.etc.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import com.etc.dao.EntityDao;
import com.etc.service.EntityService; /** 声明当前类是一个配置类 ,在该类中定义bean*/
@Configuration
public class JavaConfig { /**获取dao的bean*/
@Bean
public EntityDao entityDao(){
return new EntityDao();
} /**获取service的bean*/
// @Bean
// public EntityService entityService(){
// EntityService entityService=new EntityService();
// entityService.setEntityDao(entityDao());
// return entityService;
// } /**获取serveice的bean时,通过方法参数注入bean*/
@Bean
public EntityService entityService(EntityDao entityDao){
EntityService entityService=new EntityService();
entityService.setEntityDao(entityDao);
return entityService;
} }

  

测试类代码

package com.etc.test;

import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext; import com.etc.config.DiConfig;
import com.etc.config.JavaConfig;
import com.etc.service.EntityService; public class TestClass { /**测试使用注解实现IOC*/
public void test1() {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
DiConfig.class);
EntityService es = context.getBean(EntityService.class);
System.out.println(es.getData());
context.close();
} /**测试使用Java配置实现IOC*/
@Test
public void test2(){
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
JavaConfig.class);
EntityService es = context.getBean(EntityService.class);
System.out.println(es.getData());
} }

  

测试结果

get data from database

  

最新文章

  1. loadrunner性能测试---添加windows多台压力机
  2. 自用VS Code 上的Markdown 编辑器css
  3. ANGULAR JS WATCH监听使用(详)
  4. Android学习系列(36)--App调试内存泄露之Context篇(上)
  5. 关于CPU Cache:程序猿需要知道的那些
  6. Floyd算法 及其运用
  7. 当多个工程互相引用时,若有serverlet工程,提示java.lang.NoClassDefFoundError错误
  8. Tomcat6.0的Thisisverylikelytocreateamemoryleak异常
  9. fineui框架
  10. scaleform 注意事项
  11. OD: Universal Shellcode
  12. 转: Promises与Javascript异步编程
  13. TortoiseGit - pull 与 fetch
  14. MarkDown本地图片上传工具制作总结
  15. C#中的Explicit和Implicit
  16. 从头开始基于Maven搭建SpringMVC+Mybatis项目(1)
  17. 图像处理------泛洪填充算法(Flood Fill Algorithm) 油漆桶功能
  18. machine learning 之 logistic regression
  19. InheritableThreadLocal类原理简介使用 父子线程传递数据详解 多线程中篇(十八)
  20. 学习HTML5, Canvas及简单动画的使用

热门文章

  1. CSS中style用法详解
  2. 【204】显示3D大球球
  3. 【WIP】客户端JavaScript Web Object
  4. bzoj 3992: [SDOI2015]序列统计【原根+生成函数+NTT+快速幂】
  5. 五个demo案例带你学习PHP反序列化漏洞
  6. vs2010中的ADO控件及绑定控件
  7. 题解报告:hdu 6441 Find Integer(费马大定理+智慧数)
  8. 125 Valid Palindrome 验证回文字符串
  9. Ansj分词的使用
  10. js删除最后一个字符