在一个项目开发中,一般会把项目分为 1、DAO层(数据访问层):专门负责数据库交互 CRUD(增查改删),比如在mysql数据库里生成一条订单数据。2、Service层(业务逻辑层) : 负责业务逻辑的处理,比如购买东西的业务,需要调用DAO层的方法扣减商品记录里的库存数量,然后生成一条订单记录。3、Controller层(控制层) : 接收页面的请求,调用业务逻辑层去处理,将业务逻辑层处理返            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-10 14:49:13
                            
                                68阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             文章目录<component-scan>概述1. XML: Spring 配置文件2. Parser: ComponentScanBeanDefinitionParser3. Scanner: ClassPathBeanDefinitionScanner4. Provider: ClassPathScanningCandidateComponentProvider总结 本文根据 《S            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-27 12:23:55
                            
                                52阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            有过dubbo/dubbox使用经验的朋友,看到下面这张图,一定很熟悉,就是SOA架构的最基本套路。与dubbo对比,上图的3大要素中,spring cloud是借助以下组件来实现的:1、注册中心:spring cloud默认使用eureka server来做注册中心,而dubbo默认使用的是zookeeper。eureka的注册信息是保存在一个双层的Map对象中的,换句话说在内存中,不象zook            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-15 10:21:40
                            
                                56阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Spring Cloud概述 1.1 基于SOA系统架构
 面向服务的架构,是一种程序开发架构的设计思想。它将不同的功能单元使用一个作为独立的程序运行,并且提供访问的入口(将这些单独运行的每个程序称为服务)。一个SOA架构的web应用程序,是多个服务组成的!!! SOA架构的思想就是用于实现,程序分布式的。所以我们也可以将SOA架构的思想理解为分布            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-19 15:49:17
                            
                                21阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            之前写Junit测试类的时候,我们都会给spring容器手动注入一个配置类,里面会用@ComponentScan来告诉spring需要扫描的路径。如下图: 那么spring就是通过这个配置类的注解,拿到我们定义的路径,然后从电脑中的绝对路径读取到.class文件进行解析。 大概流程如下:ConfigrarionClassPostProcessor获取包名得到路径下的所有文件通过ASM的方式读取字节            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-19 23:49:07
                            
                                94阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在applicationContext的创建中,我们分析了applicationContext的创建过程,在本文中,我们将分析spring是如何进行包扫描的。依旧是AnnotationConfigApplicationContext的构造方法:public AnnotationConfigApplicationContext(String... basePackages) {
    this()            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-08 10:00:31
                            
                                53阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            作为Java的开发者Spring可以称之为神一样的存在框架,好处太多无法用言语表达只能称之为Java排名的number one 框架。我们使用Spring它帮助我们实例化了很多Bean对象,但是这些Bean是怎样加载到Spring容器中的呢?相信很多人都不知道。现在就讲一下,还是以Spring Boot项目作为例子来讲,因为它的底层还是Spring。Spring扫描类主要是依赖这个注解:@Comp            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-06 06:45:55
                            
                                35阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            springcloud学习之config服务集成bus实现动态更新配置文件在之前的服务中已经实现了config-server 和config-client服务,本章节将会实现动态更新配置文件信息,之前的项目有不懂的可以看springcloud学习之config统一管理微服务配置 版本介绍 springboot 2.1.6 springcloud Greenwich.SR1 文章目录springcl            
                
         
            
            
            
            目录前言项目版本项目说明集成Dubbo 2.6.x新项目模块老项目模块集成Dubbo 2.7.x新项目模块老项目模块参考资料系列文章前言SpringCloud系列开篇文章就说到了,公司新项目将入坑SpringCloud全家桶,但原先线上老项目是采用Spring+Dubbo技术栈的,新项目中的部分业务还是和老项目有点关联的,重写这一部分业务逻辑也是需要点时间,本来想通过http请求进行业务交互的,总            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-15 19:40:40
                            
                                49阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
                    最近在学spring源码, 其实我刚开始使用spring的时候就有过思考, 为什么我加了@Component, @Controller, @service 等注解, 就会被扫描到(还要指定扫描包)注入到容器中. 这里不详细讲过程, 详细讲讲我学习的方法.        首先去spring.io下载源码,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-23 21:32:44
                            
                                27阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Spring Boot的ComponentScan原理@ComponentScan
如果你了解组件扫描,你就会理解Spring。Spring是一个依赖注入框架。它完全是关于依赖的bean和wiring。定义Spring Beans的第一步是添加正确的注释 - @Component或@Service或@Repository。但是,Spring不知道bean在哪个包下面,除非你告诉它去哪里搜索包。这部            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-12 11:43:10
                            
                                38阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            深入解析invokeBeanFactoryPostProcessors方法前面bean的基石beanDefinition简单说了invokeBeanFactoryPostProcessors方法,现在来彻底搞懂这个方法。实现子类BeanDefinitionRegistryPostProcessor的执行时机首先有一个A类,,它实现了BeanDefinitionRegistryPostProcess            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-26 09:09:41
                            
                                27阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
               项目中需要用到包扫描的情况是很多的,一般是在项目初始化的时候,根据一些条件来对某个package下的类进行特殊处理。现在想实现的功能是,在一个filter或interceptor初始化的时候,扫描指定的一些package路径,遍历下面的每个class,找出method上使用了一个特殊注解的所有方法,然后缓存起来,当方法拦截器工作的时候,就不用再挨个判断方法是否需要拦截了&            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-26 12:06:53
                            
                                38阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1. 介绍项目中的一些单表的增删改查功能,逻辑简单,但是在创建service、mapper、xml的过程很耗费时间。我们可以通过整合mybatis-plus和mybatis-plus-generator来处理这些问题,说明:mybatis-plus只是给我们提供一种便捷的操作,节约了写简单sql的时间,但其自身还是支持原生sql的。对于一些逻辑复杂或者多表操作或者动态sql,建议写原生sql。本文            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-06 12:31:43
                            
                                35阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             文章目录前言正文方法1:configureScanner方法2:createScanner方法3:registerDefaultFilters方法4:parseTypeFilters方法5:createTypeFilter方法6:doScan方法7:findCandidateComponents方法8:isCandidateComponent方法9:isCandidateComponent方法1            
                
         
            
            
            
            Spring 如何通过包名扫描到包中的Bean组件?要做到这件事要分成两步:如何获取指定包路径下符合要求的所有文件如何读取找到的字节码信息1、如何获取指定包路径下符合要求的所有文件1.1 相关接口spring 为获取包中的资源提供了ResourceLoader 接口和  ResourcePatternResolver 接口,后者是前者的子接口,在前者的基础上额外定义了通过匹配模式批量获取资源的方法            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                            精选
                                                        
                            2023-12-15 23:53:52
                            
                                433阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            2、SpringBoot的默认扫描包机制个人理解、仅供参考。2.1、@SpringBootApplication先从主启动类来说@SpringBootApplication
public class springBootHelloWorld {
    public static void main(String[] args) {
        SpringApplication.run(sp            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-26 12:50:09
                            
                                915阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            SpringBoot版本:2.3.2.RELEASE1、首先我通过springboot主程序上唯一的注解@SpringBootApplication进入查看springboot源码SpringBootApplication是SpringBoot的主要配置类,SpringBoot的main方法就是由这个类启动的而这个类上还配置了SpringBoot的几个核心注解:@SpringBootConfigu            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-22 16:03:16
                            
                                91阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            其实Spring和SpringMVC是有父子容器关系的,而且正是因为这个才往往会出现包扫描的问题,我们在此来分析和理解Spring和SpringMVC的父子容器关系并且给出Spring和SpringMVC配置文件中包扫描的官方推荐方式。  在Spring整体框架的核心概念中,容器是核心思想,就是用来管理Bean的整个生命周期的,而在一个项目中,容器不一定只有一个,Spring中可以包括多个容器,而            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-19 21:05:44
                            
                                65阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.Spring结合Mybatis最常用的配置。 
 <!--理论加实践,才是架构师嘚最佳实践 -->
 
         
 <!--JDBC Data Source -->
 
         
 < 
 bean  
 id 
 =  
 "testdataSource"
 
                
 class 
 =  
 "org.s