除了使用xml,spring提供javaconfig配置,下面是简单的例子:

1.声明接口

/**
*
*/
package com.junge.demo.spring.service; /**
* 表演
* @author Administrator
*
*/
public interface IPerface { void play();
}

2.添加实现类

/**
*
*/
package com.junge.demo.spring.service.impl; import org.springframework.stereotype.Service; import com.junge.demo.spring.service.IPerface; /**
* 武术表演
* @author Administrator
*
*/
@Service
public class WushuPerface implements IPerface { /* (non-Javadoc)
* @see com.junge.demo.spring.service.IPerface#play()
*/
@Override
public void play() {
System.out.println("武术表演"); } }

3.添加javaconfig配置类,和服务接口在同一级

/**
*
*/
package com.junge.demo.spring.service; import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration; /**
* 自动装配配置类
* @author Administrator
*
*/
@Configuration
@ComponentScan
public class ServiceConfig { }

4.运行测试:

/**
*
*/
package com.junge.demo.spring; import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext; import com.junge.demo.spring.service.IPerface;
import com.junge.demo.spring.service.ServiceConfig; /**
* @author Administrator
*
*/
public class ServiceConfigApp { private static ApplicationContext applicationContext; /**
* @param args
*/
public static void main(String[] args) {
applicationContext = new AnnotationConfigApplicationContext(ServiceConfig.class);
System.out.println(applicationContext.getBeansOfType(IPerface.class)); } }

5.运行结果:

6.@Configuration注解说明:默认扫描的是当前包以及子包

如上所示:查看@ComponentScan的参数,有basePackages和basePackageClasses,在同一个java类中可以配置不同的扫描基本包:

在每一个要扫描的包中添加一个空标记接口,使用basePackageClasses可以把所有的扫描都配置上,使用basePackageClasses比basePackages更友好一点,因为在重构代码时,配置可以自动修改。

最新文章

  1. js类数组
  2. Valgrind 发现程序的内存问题
  3. Sublime Text 3103 Crack 破解 注册码(亲测有效)
  4. Educational Codeforces Round 15 C. Cellular Network(二分)
  5. Ajax清除浏览器js、css、图片缓存的方法
  6. cocos2d-x 用浏览器打开网页
  7. 【BZOJ 1791】 [Ioi2008]Island 岛屿
  8. 【枚举】Vijos P1496 火柴棒等式 (NOIP2008提高组第二题)
  9. WCF技术剖析之十五:数据契约代理(DataContractSurrogate)在序列化中的作用
  10. java中的Volatile 变量
  11. Selenium 上传文件失败,解决办法一
  12. bzoj 3529 数表
  13. 最长回文 hdu3068(神代码)
  14. swift 4 生成随机数的内置方法汇总
  15. openfire课程
  16. 自定义 vim
  17. 分布式文件系统HDFS,大数据存储实战(一)
  18. 20165327 2017-2018-2 《Java程序设计》第2周学习总结
  19. win32下编译glog
  20. Socket编程入门

热门文章

  1. nginx 域名(虚拟)部署nodejs项目
  2. swift MD5 加密方法
  3. VSFTPD虚拟用户配置
  4. 【linux轻松学】修改文件权限
  5. ServiceDesk Plus服务管理软件,减轻帮助台负荷,提高IT效率
  6. css进阶篇
  7. Servet-------JSTL标签库
  8. 3、iOS Xcode创建protocol(代理).h文件
  9. ios label的一些设置
  10. 2019.01.09 bzoj3697: 采药人的路径(点分治)