`

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"})的配置信息。

相关推荐

    从零开始学Spring Boot

    1.29 改变自动扫描的包 1.30 Spring Boot Junit单元测试 1.31 SpringBoot启动时的Banner设置 1.32 Spring boot 文件上传(多文件上传) 1.33 导入时如何定制spring-boot依赖项的版本 1.34 Spring Boot导入XML配置 ...

    1. [视频]spring boot起步之Hello World【从零开始学Spring Boot】

    在本节中,我们将深入探讨"Spring Boot起步之Hello World"这一主题,这是学习Spring Boot框架的典型入门教程。Spring Boot是由Pivotal团队开发的一个框架,它旨在简化Spring应用程序的初始搭建以及开发过程,通过...

    31. Spring Boot导入XML配置【从零开始学Spring Boot】

    在本篇【从零开始学Spring Boot】系列教程中,我们将深入探讨如何在Spring Boot项目中导入并使用XML配置。Spring Boot以其简化Spring应用的初始搭建以及开发过程而闻名,通常推崇的是Java配置而非XML配置。然而,在...

    17. Spring Boot普通类调用bean【从零开始学Spring Boot】

    Spring Boot普通类调用bean【从零开始学Spring Boot】”旨在指导初学者如何在非Spring管理的类中访问和使用Spring容器中的bean。下面将详细讲解这个主题。 首先,了解Spring Boot的基础概念是必要的。Spring Boot...

    7. JPA - Hibernate【从零开始学Spring Boot】

    作为从零开始学习Spring Boot的一部分,理解如何有效地利用这些技术进行数据库操作至关重要。 首先,JPA是Java平台上的一个标准,用于管理关系数据库中的对象持久化。它为开发人员提供了一种统一的API,简化了...

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

    1. 自动扫描:Spring Boot可以通过`@ComponentScan`注解自动扫描特定包及其子包下的所有`@Component`家族注解的类。在启动类上添加此注解,Spring会自动发现并注册这些Bean。 ```java @SpringBootApplication @...

    35.[视频] Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】

    - **启用Redis缓存**:通过在配置类中启用`@EnableCaching`注解,Spring Boot将自动扫描并处理缓存注解。 2. **Redis缓存注解** - **@Cacheable**:此注解用在方法上,表示该方法的结果会被缓存。可以通过指定`...

    Spring Boot 系列教程 入门

    总的来说,"Spring Boot系列教程入门"将涵盖以上知识点,并逐步教你如何从零开始搭建和运行一个完整的Spring Boot应用,包括配置、依赖管理、数据访问、Web开发和部署等方面,让你快速成为Spring Boot开发的行家里手...

    Spring Boot 系列实战合集.zip

    1. 创建第一个 Spring Boot 项目:从零开始创建一个简单的 "Hello, World!" 应用,理解 Maven 或 Gradle 项目的结构。 2. 使用 Spring Boot 的自动配置:探究如何利用自动配置来简化配置文件。 3. 开发 RESTful API...

    从零搭建Spring Boot脚手架,集成mybatis.docx

    本文将详细介绍如何从零开始搭建一个Spring Boot项目,并集成MyBatis框架。Spring Boot是一个基于Java的轻量级框架,简化了新Spring应用程序的初始设置和配置。而MyBatis是一个优秀的持久层框架,它支持自定义SQL、...

    Spring boot基础demo

    Spring Boot是Java开发中的一个流行框架,用于简化Spring应用程序的创建和配置过程。它通过提供预配置的starter pom或gradle...这个demo是一个实践型的学习资源,帮助开发者从零开始接触并掌握Spring Boot的基础知识。

    Spring Boot2 教程.pdf

    【Spring Boot 2 教程】是针对Java开发者的一份详尽指南,旨在帮助读者从零开始学习并掌握Spring Boot 2的使用。Spring Boot 是一个简化Spring应用初始搭建以及开发过程的框架,它强调“约定优于配置”,使得开发者...

    Spring boot(一): 入门篇.rar_springboot

    Spring Boot 的目标是让开发者能够快速地从零开始开发项目,而不必关注基础架构的配置。 2. **起步依赖(Starters)**: Spring Boot 的核心特性之一是起步依赖,它们是一系列 Maven 或 Gradle 的依赖模块,用于...

    从零搭建Spring Boot脚手架,整合 Mybatis Plus.docx

    本篇着重介绍了如何从零开始搭建Spring Boot项目,并整合Mybatis Plus,旨在帮助开发者高效地进行数据库交互。 #### 2. Mybatis Plus 的优势 Mybatis Plus 是一款优秀的开源项目,其核心优势在于: - **单表通用 ...

    spring-boot-mybatis-plus 一套打通 有注释 打开就可使用

    这样的项目通常包含完整的配置和示例代码,使得开发者可以立即上手,无需从零开始配置环境。 描述中提到的是最新版本的Spring Boot 2.x和MyBatis Plus。Spring Boot 2.x带来了许多改进和新特性,比如更好的性能、新...

    详尽的Spring2.0学习提纲

    1. 创建Spring项目:从零开始构建一个简单的Spring MVC应用,涉及配置、控制器、视图和数据库访问。 2. 高级特性实践:探索Spring Security、Spring WebSocket、Spring Boot等进阶主题,提升项目开发能力。 通过...

    Spring Boot整合Mybatis入门Demo

    这个Demo展示了如何从零开始搭建一个简单的数据查询应用。随着需求的增加,你可以添加更多的Mapper接口和XML文件,以处理更复杂的业务逻辑。同时,Spring Boot还提供了许多其他特性,如安全控制(Spring Security)...

    SpringBoot Starter模板

    在这个模板中,你无需从零开始创建项目结构,而是可以直接利用预配置的依赖来启动开发。 首先,让我们深入了解Spring Boot。Spring Boot是由Pivotal团队维护的一个Java项目,它构建于Spring Framework之上,旨在...

Global site tag (gtag.js) - Google Analytics