`

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

阅读更多

 à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

 

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

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

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

 

第一步:新建两个新包

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

 

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

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

cn.kfit.MyCommandLineRunner1  :

package cn.kfit;

 

import org.springframework.boot.CommandLineRunner;

 

@Configuration

publicclass MyCommandLineRunner1 implements CommandLineRunner {

 

    @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 implements CommandLineRunner {

 

    @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 系列博客】

à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

网易云课堂视频最新更新

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

第十二章 Spring Boot 知识点2

1、spring boot 服务配置和部署

2、Spring Boot 定制URL匹配规则

 

 

历史章节

 

第一章 快速开始

1、Spring Boot之Hello World

2、Spring Boot之Hello World访问404

 

第二章 Spring Boot之JSON

1、spring boot返回json数据

2、Spring Boot完美使用FastJson解析JSON数据

 

第三章 Spring Boot热部署

1、Spring Boot热部署(springloader)

2、springboot + devtools(热部署)

 

第四章 Spring Boot数据库

1、Spring Boot JPA/Hibernate/Spring Data概念

2、Spring Boot JPA-Hibernate

3、Spring Boot Spring Data JPA介绍

4、Spring Boot JdbcTemplate

5、Spring Boot集成MyBatis

 

第五章 web开发

1、全局异常捕捉

2、配置server信息

3、spring boot使用thymeleaf

4、Spring Boot 使用freemarker

5、Spring Boot添加JSP支持

 

第六章 定时任务

1、Spring Boot定时任务

2、Spring Boot 定时任务升级篇(动态修改cron参数)

3、Spring Boot 定时任务升级篇(动态添加修改删除定时任务)

4、Spring Boot 定时任务升级篇(集群/分布式下的定时任务说明)

5、Spring Boot Quartz介绍

6、Spring Boot Quartz在Java Project中使用

7、Spring Boot 集成Quartz普通使用

8、Spring Boot 集成Quartz升级版

9、Spring Boot 集成Quartz二次升级版

10、Spring Boot 集成Quartz-Job如何自动注入Spring容器托管的对象

 

第七章 Spring Boot MyBatis升级篇

1、Spring Boot MyBatis升级篇-注解

2、Spring Boot MyBatis升级篇-注解-自增ID

3、Spring Boot MyBatis升级篇-注解-增删改查

4、Spring Boot MyBatis升级篇-注解-分页查询

5、Spring Boot MyBatis升级篇-注解-分页PageHelper不生效

6、Spring Boot MyBatis升级篇-注解- mybatic insert异常:BindingException: Parameter 'name' not found

7、Spring Boot MyBatis升级篇-注解- #和$符号特别篇

8、Spring Boot MyBatis升级篇-注解-@Result

9、Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案一:<script>

10、Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案二:@Provider

11、Spring Boot MyBatis升级篇-注解-动态SQL-参数问题

12、Spring Boot MyBatis升级篇-注解-特别篇:@MapperScan和@Mapper

13、Spring Boot MyBatis升级篇-XML

14、Spring Boot MyBatis升级篇-XML-自增ID

15、Spring Boot MyBatis升级篇-XML-增删改查

16、Spring Boot MyBatis升级篇-XML-分页查询

17、Spring Boot MyBatis升级篇-XML-分页PageHelper不生效

18、Spring Boot MyBatis升级篇-XML-动态SQL(if test)

19、Spring Boot MyBatis升级篇-XML-注解-初尝试

20、Spring Boot MyBatis升级篇- pagehelper替换为pagehelper-spring-boot-starter

 

第八章 Spring Boot 知识点1

1、Spring Boot 拦截器HandlerInterceptor

2、Spring Boot启动加载数据CommandLineRunner

3、Spring Boot环境变量读取和属性对象的绑定

4、Spring Boot使用自定义的properties

5、Spring Boot使用自定义的properties

6、Spring Boot使用@SpringBootApplication

7、Spring Boot 监控和管理生产环境

 

第十章 Spring Boot 打包部署

1、Spring Boot打包部署((提供Linux的sh文件))

 

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

 

 

 

分享到:
评论
6 楼 林祥纤 2018-01-03  
luchi61 写道
楼主  @springbootapplication  注解  对 某个包不进行扫描 如何做   ?


使用@springbootapplication的话,只能是排除某个类:
属性:exclude或者是:excludeName
5 楼 luchi61 2018-01-03  
楼主  @springbootapplication  注解  对 某个包不进行扫描 如何做   ?
4 楼 u011701322 2017-05-24  
spring boot里,扫描的class对象是用注解@ComponentScan(未指定的情况下默认是main函数所在package)来指定的
看看你的App类,是不是放的位置
3 楼 iyuanbo 2017-03-30  
masuweng 写道
我现在的问题是:

   我的包 com.dvp.demo.service
          net.dvp.test.service
                
 
   我的启动类:     com.dvp
                           -App.java
    运行App.java时,报错。提示说 net.dvp.test.service包下的
                                        @Resource
                                        DemoRepositoryService 类扫描不到;

我修改了启动类 net.dvp
                           -App.java
    运行App.java时,报错。提示说。com.dvp.demo.service包下的
                                        @Resource
                                        UserInfoRepositoryService 类扫描不到;

统统注入失败。

备注:
  App.java中@ComponentScan(basePackages={"com.dvp","net.dvp","test"})的配置信息。



springBoot  好像不支持@Resource注解把
2 楼 林祥纤 2016-08-08  
masuweng 写道
我现在的问题是:

   我的包 com.dvp.demo.service
          net.dvp.test.service
                
 
   我的启动类:     com.dvp
                           -App.java
    运行App.java时,报错。提示说 net.dvp.test.service包下的
                                        @Resource
                                        DemoRepositoryService 类扫描不到;

我修改了启动类 net.dvp
                           -App.java
    运行App.java时,报错。提示说。com.dvp.demo.service包下的
                                        @Resource
                                        UserInfoRepositoryService 类扫描不到;

统统注入失败。

备注:
  App.java中@ComponentScan(basePackages={"com.dvp","net.dvp","test"})的配置信息。



在1.3.3版本是测试成功的,但不知道是不是新版就不支持了再者就是你的代码在哪里写的有问题,少了什么注解之类的。
1 楼 masuweng 2016-08-08  
我现在的问题是:

   我的包 com.dvp.demo.service
          net.dvp.test.service
                
 
   我的启动类:     com.dvp
                           -App.java
    运行App.java时,报错。提示说 net.dvp.test.service包下的
                                        @Resource
                                        DemoRepositoryService 类扫描不到;

我修改了启动类 net.dvp
                           -App.java
    运行App.java时,报错。提示说。com.dvp.demo.service包下的
                                        @Resource
                                        UserInfoRepositoryService 类扫描不到;

统统注入失败。

备注:
  App.java中@ComponentScan(basePackages={"com.dvp","net.dvp","test"})的配置信息。

相关推荐

Global site tag (gtag.js) - Google Analytics