26. 改变自动扫描的包【从零开始学Spring Boot】

来源:互联网 发布:二维码扫描软件 编辑:程序博客网 时间:2024/06/11 05:26

在开发中我们知道SpringBoot默认会扫描启动类同包以及子包下的注解,那么如何进行改变这种扫描包的方式呢,原理很简单就是:

@ComponentScan注解进行指定要扫描的包以及要扫描的类。

接下来我们简单写个例子进行测试下。

 

第一步:新建两个新包

     我们在项目中新建两个包cn.kfit ; org.kfit

 

第二步:新建两个测试类;

在这里为了方便测试,我们让我们的类在启动的时候就进行执行,所以我们就编写两个类,实现接口CommandLineRunner,这样在启动的时候我们就可以看到打印信息了。

cn.kfit.MyCommandLineRunner1  :

package cn.kfit;

 

importorg.springframework.boot.CommandLineRunner;

 

@Configuration

publicclass MyCommandLineRunner1 implementsCommandLineRunner {

 

       @Override

       publicvoid run(String... args) throws Exception {

              System.out.println("MyCommandLineRunner1.run()");

       }

}

 

org.kfit.MyCommandLineRunner2  :

package org.kfit;

 

import org.springframework.boot.CommandLineRunner;

 

@Configuration

publicclass MyCommandLineRunner2 implementsCommandLineRunner {

 

       @Override

       publicvoid run(String... args) throws Exception {

              System.out.println("MyCommandLineRunner2.run()");

       }

}

 

第三步:启动类进行注解指定

在App.java类中加入如下注解:

//可以使用:basePackageClasses={},basePackages={}

@ComponentScan(basePackages={"cn.kfit","org.kfit"})

 

启动如果看到打印信息:

MyCommandLineRunner1.run()

MyCommandLineRunner2.run()

说明我们配置成功了。

这时候你会发现,在App.java同包下的都没有被扫描了,所以如果也希望App.java包下的也同时被扫描的话,那么在进行指定包扫描的时候一定要进行指定配置:

@ComponentScan(basePackages={"cn.kfit","org.kfit","com.kfit"})

 



【Spring Boot 系列博客】

61. mybatic insert异常:BindingException: Parameter 'name' not found【从零开始学Spring B】 

 

 

60. Spring Boot写后感【从零开始学Spring Boot】 

 

 

59. Spring Boot Validator校验【从零开始学Spring Boot】 

 

58. Spring Boot国际化(i18n)【从零开始学Spring Boot】 

 

57. Spring 自定义properties升级篇【从零开始学Spring Boot】 

 

56. spring boot中使用@Async实现异步调用【从零开始学Spring Boot】 

 

55. spring boot 服务配置和部署【从零开始学Spring Boot】 

 

54. spring boot日志升级篇—logback【从零开始学Spring Boot】

 

52. spring boot日志升级篇—log4j多环境不同日志级别的控制【从零开始学Spring Boot】 

 

51. spring boot属性文件之多环境配置【从零开始学Spring Boot】

 

50. Spring Boot日志升级篇—log4j【从零开始学Spring Boot】

 

49. spring boot日志升级篇—理论【从零开始学Spring Boot】

 

48. spring boot单元测试restfull API【从零开始学Spring Boot】

 

47. Spring Boot发送邮件【从零开始学Spring Boot】

 

46. Spring Boot中使用AOP统一处理Web请求日志

 

45. Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot】

 

44. Spring Boot日志记录SLF4J【从零开始学Spring Boot】

 

43. Spring Boot动态数据源(多数据源自动切换)【从零开始学Spring Boot】

 

42. Spring Boot多数据源【从零开始学Spring Boot】

 

41. Spring Boot 使用Java代码创建Bean并注册到Spring中【从零开始学Spring Boot】

 

40. springboot + devtools(热部署)【从零开始学Spring Boot】 

 

39.4 Spring Boot Shiro权限管理【从零开始学Spring Boot】

 

39.3 Spring Boot Shiro权限管理【从零开始学Spring Boot】

 

39.2. Spring Boot Shiro权限管理【从零开始学Spring Boot】

 

39.1 Spring Boot Shiro权限管理【从零开始学Spring Boot】

 

38 Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot】 

 

37 Spring Boot集成EHCache实现缓存机制【从零开始学Spring Boot】 

 

36 Spring Boot Cache理论篇【从零开始学Spring Boot】

 

35 Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】 

 

34Spring Boot的启动器Starter详解【从零开始学Spring Boot】

 

33 Spring Boot 监控和管理生产环境【从零开始学Spring Boot】

 

32 Spring Boot使用@SpringBootApplication注解【从零开始学Spring Boot】 

 

 

 

 

更多查看博客: http://412887952-qq-com.iteye.com/

 



2 0