前面的例子我们都是使用XML的bean定义来配置组件。在一个稍大的项目中,通常会有上百个组件,如果这些这组件采用xml的bean定义来配置,显然会增加配置文件的体积,查找及维护起来也不太方便。spring(Spring2.5以上的版本,包含2.5版)为我们引入了组件自动扫描机制,它可以在类路径底下寻找标注了@Component、 @Service、 @Controller、 @Repository            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-07 12:46:45
                            
                                105阅读
                            
                                                                             
                 
                
                             
         
            
            
            
              在一个项目开发中,一般会把项目分为 1、DAO层(数据访问层):专门负责数据库交互 CRUD(增查改删),比如在mysql数据库里生成一条订单数据。2、Service层(业务逻辑层) : 负责业务逻辑的处理,比如购买东西的业务,需要调用DAO层的方法扣减商品记录里的库存数量,然后生成一条订单记录。3、Controller层(控制层) : 接收页面的请求,调用业务逻辑层去处理,将业务逻辑层处理返            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-10 14:49:13
                            
                                68阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Spring1. 作用创建和管理对象,使得开发过程中,可以不必使用new关键字创建对象,而是直接获取对象!并且,还可以通过一些配置,使得某些获取到的对象,其中某些属性已经是被赋值的!2. Spring注解在Spring中,定义了一系列的注解,可以取代几乎所有的XML配置!尽管使用注解可以完成此前的许多配置,但是,基于Spring的项目仍需要Spring的配置文件!2.1. 常用注解使用注解的方式来            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-10 13:51:17
                            
                                44阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            问题spring中配置了包路径,但不扫描包,上网搜索后发现,eclipse导出包时勾选add directory entry就ok了。我的疑问是ad            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-06-28 14:21:15
                            
                                87阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Spring1. 作用创建和管理对象,使得开发过程中,可以不必使用new关键字创建对象,而是直接获取对象!并且,还可以通过一些配置,使得某些获取到的对象,其中某些属性已经是被赋值的!2. Spring注解在Spring中,定义了一系列的注解,可以取代几乎所有的XML配置!尽管使用注解可以完成此前的许多配置,但是,基于Spring的项目仍需要Spring的配置文件!2.1. 常用注解使用注解的方式来            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-06 10:55:46
                            
                                23阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在applicationContext的创建中,我们分析了applicationContext的创建过程,在本文中,我们将分析spring是如何进行包扫描的。依旧是AnnotationConfigApplicationContext的构造方法:public AnnotationConfigApplicationContext(String... basePackages) {
    this()            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-08 10:00:31
                            
                                53阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在上篇文章Spring IoC 源码分析 (基于注解) 一我们分析到,我们通过AnnotationConfigApplicationContext类传入一个包路径启动Spring之后,会首先初始化包扫描的过滤规则。那我们今天就来看下包扫描的具体过程。还是先看下面的代码:AnnotationConfigApplicationContext类//该构造函数会自动扫描以给定的包及其子包下的所有类,并自动            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-28 03:23:20
                            
                                329阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Spring applicationContext.xml的<context:component-scan>標籤用途比我想像的還要實用。而且後來才知道,有了<context:component-scan>,另一個<context:annotation-config/>標籤根本可以移除掉,因為被包含進去了。原本我survery Spring3通常只配置成<c            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-07 18:49:00
                            
                                29阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Spring Boot的ComponentScan原理@ComponentScan
如果你了解组件扫描,你就会理解Spring。Spring是一个依赖注入框架。它完全是关于依赖的bean和wiring。定义Spring Beans的第一步是添加正确的注释 - @Component或@Service或@Repository。但是,Spring不知道bean在哪个包下面,除非你告诉它去哪里搜索包。这部            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-12 11:43:10
                            
                                38阅读
                            
                                                                             
                 
                
                             
         
            
            
            
              听到扫描包,是不是感觉有点熟悉,没错就是你心中想的那样,给我一个包路径,我就将这个包的所有类包装成beanDefinition.你想一下,在早期,spring刚出来的时候,如果你有100个类,那么想把它变成beandefinition,你是不是要在xml里面定义100个bean标签的,如果是1000个呢,那是不是写1000个bean标签,是不是手都写麻了,看得也麻了,头也大了吧。所以            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-25 07:41:49
                            
                                76阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            深入解析invokeBeanFactoryPostProcessors方法前面bean的基石beanDefinition简单说了invokeBeanFactoryPostProcessors方法,现在来彻底搞懂这个方法。实现子类BeanDefinitionRegistryPostProcessor的执行时机首先有一个A类,,它实现了BeanDefinitionRegistryPostProcess            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-26 09:09:41
                            
                                27阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
                    最近在学spring源码, 其实我刚开始使用spring的时候就有过思考, 为什么我加了@Component, @Controller, @service 等注解, 就会被扫描到(还要指定扫描包)注入到容器中. 这里不详细讲过程, 详细讲讲我学习的方法.        首先去spring.io下载源码,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-23 21:32:44
                            
                                27阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1、ApplicationContext和AppConfig我们首先需要模拟的是spring的自动扫描机制,我们来想一下,当spring容器启动,自动扫描的时候,首先是肯定不能缺少启动类的,也就是我们的ApplicationContext,所以我们先创建一个ApplicationContext。回想一下,我们之前手动去配置spring.xml的时候,是要通过启动配置ApplicationConte            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-21 19:30:50
                            
                                51阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            ApplicationContext.xml 的配置文件<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-31 22:13:35
                            
                                139阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            作为Java的开发者Spring可以称之为神一样的存在框架,好处太多无法用言语表达只能称之为Java排名的number one 框架。我们使用Spring它帮助我们实例化了很多Bean对象,但是这些Bean是怎样加载到Spring容器中的呢?相信很多人都不知道。现在就讲一下,还是以Spring Boot项目作为例子来讲,因为它的底层还是Spring。Spring扫描类主要是依赖这个注解:@Comp            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-06 06:45:55
                            
                                35阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言传统配置Spring xml配置文件将Bean托管Spring容器。但由于配置的繁琐性,随着JDK5支持注解,Spring2.x版本后逐渐使用注解方式代替传统XML配置。现在开发的新项目惯于使用Spring扫包+注解的方式自动装配,托管于Spring容器。本篇文章基于上述内容,大致描述Spring新版本核心思想,代码只提炼精髓与关键点,且与源码大相径庭,复杂程度远不及源码的N分之一,仅供参考。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-21 00:49:02
                            
                                111阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录前言一、ComponentScan 扫描路径定义:二、包路径扫描:2.1 AnnotationConfigApplicationContext:2.1.1 reader 和 scan 初始化:2.2 包扫描:2.2.1 scan 扫描:2.2.2 doScan 扫描:2.2.3 findCandidateComponents 获取BeanDefinition :三、扩展:3.1 条件Co            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-21 19:36:59
                            
                                8阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            其实Spring和SpringMVC是有父子容器关系的,而且正是因为这个才往往会出现包扫描的问题,我们在此来分析和理解Spring和SpringMVC的父子容器关系并且给出Spring和SpringMVC配置文件中包扫描的官方推荐方式。  在Spring整体框架的核心概念中,容器是核心思想,就是用来管理Bean的整个生命周期的,而在一个项目中,容器不一定只有一个,Spring中可以包括多个容器,而            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-19 21:05:44
                            
                                65阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Spring的核心   依赖注入   DI  切面编程 AOPspring要引入的jar包有:commons-logging-1.2 spring-beans-4.1.4 spring-context-4.1.4 spring-core-4.1.4 spring-expression-4.1.4Spring依赖注入的原理是:Spring是个bean            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-03 23:45:53
                            
                                93阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录类路径扫描和组件管理1. 使用@Components2. 使用包扫描过滤器3. 使用注解配置Bean作用域4. JSR-330标准注解5. 包扫描效率问题* 类路径扫描和组件管理通过注解实现bean在容器中的注册。要使用这方面的注解,首先得先开启包扫描,用于指定哪个包进行自动检测。XML配置:<context:component-scan base-package="org.examp            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-15 11:46:37
                            
                                98阅读