一、了解注解@SpringBootApplication
注解源码:@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters =
转载
2024-09-27 18:16:27
96阅读
@Conditional条件装配@Conditional是Spring Framework提供的一个核心功能注解,这个注解的作用是提供自动装配的条件限制,一般我们在用@Configuration,@Bean的时候使用它。也就是我们在自定义Bean的注入的时候,我们可以通过@Condition来对bean的注入增加逻辑判断,符合我们要求的我们才让他自动装配@Conditional 的使用如下注解源码
转载
2024-04-12 12:23:37
48阅读
学习Java少不了对Object的认知,所有类都会继承它的属性,真正的超类。这一个系列,我会对Object中的几个方法,也就是我们自定义类的时候需要重写的几个方法做一个介绍。下面是这一个系列的主要内容:equals方法hashCode方法toString方法clone方法自定义类时考虑实现Comparable接口本系列内容源于对《Effective Java》中文第二版第8条到第12条的学习记录。
重载和重写方法重载(overload):必须是同一个类方法名(也可以叫函数)一样参数类型不一样或参数数量不一样方法的重写(override)两同两小一大原则:方法名相同,参数类型相同子类返回类型小于等于父类方法返回类型,子类抛出异常小于等于父类方法抛出异常,子类访问权限大于等于父类方法访问权限。spring的依赖注入spring依赖注入有如下几种方式:①setter方式注入(设值注入)②构造器方式
转载
2024-07-16 13:16:53
64阅读
先看一下Spring容器内部是如何协助的,也就是Spring容器、Bean的配置信息、Bean的实现类及应用程序之间的关系,如下图 由上图我们看到,一个Bean从创建到被程序使用经历了四个阶段。本文主要讲解Bean在Spring中的装配。装配方式主要分为如下几种。1. 基于XML的配置 1.1 依赖注入依赖注入分为几种方式:属性注入、构造函数注入、工厂方法注入
转载
2024-04-17 11:47:37
76阅读
方式1利用maven-maven-resources-plugin插件不同环境替换占位application.ymlapplication-dev.ymlapplication-pro.ymlapplication-test.ymlapplication.yml配置spring:
profiles:
active: ${spring.profiles.active}pom依赖<!
转载
2024-04-25 19:48:38
118阅读
前言写上一篇看英文资料,耗费了心力呀,这章,相对来说简单点。也比较熟悉,但是这很实用。不扯了,开始~多环境配置在开发应用时,常用部署的应用是多个的,比如:开发、测试、联调、生产等不同的应用环境,这些应用环境都对应不同的配置项,比如swagger一般上在生产时是关闭的;不同环境数据库地址、端口号等都是不尽相同的,要是没有多环境的自由切换,部署起来是很繁琐也容易出错的。maven的多环境配置在没有
转载
2024-07-17 10:13:45
172阅读
遇到这个问题困扰了我好几天,其实之前刚开始学习SpringBoot与MyBatis整合的时候,也遇到过这个问题。现在是第二次犯这个错误了,然而却不是明知故犯,是慢慢被自己坑进来的。让我们来看一下这个问题吧。可能总结的不是很全面,欢迎各位给我指出来,让解决该类问题的这篇博客变得更加详细起来,帮助更多的学习者解决该类问题,这就是写该博客的初衷。IDEA版本2018.2首先,是IDEA本身的问题,我这个
今天处理了一个问题,J2EE项目依赖了底层平台的功能,平台JAR包中配置了一个Bean,对应的实现类也在该平台JAR包中,由于Bean的配置不是懒加载的,所以在Tomcat容器启动时就会调用该Bean对应实现类中的init方法,但是该方法会对我们的业务产生副作用。现在想屏蔽这种副作用,我们肯定不能要求底层平台去修改代码,去除该Bean。所以考虑采取hack的方法解决。我们在我们的项目目录中新建了一
转载
2024-06-21 19:26:42
89阅读
文章目录夯实Spring系列|第十一章:Spring Bean 作用域本章说明1.项目环境2.Spring Bean 作用域3."singleton" Bean作用域4."prototype" Bean作用域4.1 依赖查找示例4.2 依赖注入示例4.3 注意事项4.4 增加销毁生命周期5."request" Bean作用域5.1 示例6."session" Bean作用域7."applicat
转载
2024-06-12 15:17:16
84阅读
自动化装配创建可被发现的bean为组件扫描的bean命名设置组件扫描的基础包通过为bean添加注解实现自动装配通过Java代码装配bean创建配置类声明简单的bean借助JavaConfig实现注入 Spring提供了三种主要的bean装配机制:在XML中进行显式配置在Java中进行显式配置隐式的bean发现机制和自动装配使用优先级:自动化装配>Java>XML尽可能地使用自动配置的
转载
2024-06-29 07:40:39
292阅读
Spring AOP的原理是 JDK 动态代理和CGLIB字节码增强技术,前者需要被代理类实现相应接口,也只有接口中的方法可以被JDK动态代理技术所处理;后者实际上是生成一个子类,来覆盖被代理类,那么父类的final方法就不能代理,因为父类的final方法不能被子类所覆盖。一般而言Spring默认优先使用JDK动态代理技术,只有在被代理类没有实现接口时,才会选择使用CGLIB技术来实现AOP。但是
转载
2024-07-11 14:12:54
72阅读
spring boot启动的时候会创建一个注解配置嵌入式web应用上下文AnnotationConfigEmbeddedWebApplicationContext,在实例化这个ApplicationContext时,首先会先实例化它的父类GenericApplicationContext(在父类的构造方法中初始化一个BeanFactory),然后回到子类的构造方法中初始化注解bean定义阅读器An
学习如何在 Spring Boot 中配置系统启动任务。先来回顾下在普通的 web 项目中如何在项目启动的时做一些初始化操作,一般会自己定义一个 Listener 实现 ServletContextListener 接口,这样就能监听到项目的启动和销毁,并做相应的数据初始化和销毁操作,如下:public class MyServletContextListener implements Servl
转载
2024-06-19 21:35:45
122阅读
Description:The bean 'userRepository', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.报错原因:这个Bean已经注册了,不能被覆盖 情况1:存在2个一
转载
2023-07-10 13:57:40
427阅读
( 十二 ) SpringBoot 自定义 Starter
( 十二 ) SpringBoot 自定义 Starter 1、简介2、定义自己的 Starter1、所谓的 Starter ,其实就是一个普通的 Maven 项目,因此我们自定义 Starter ,需要首先创建一个普通的 Maven 项目,创建完成后,添加
转载
2024-06-19 21:26:55
48阅读
在本文中,我将讨论棘手的Spring Boot bean定义覆盖机制。为了使您对该主题更加清楚,让我们从小测验开始。请看下一个简单的例子。因此,我们有2种配置,它们使用名称beanName实例化bean,在主应用程序中,我们仅打印该bean的值(非常重要的是,它们都具有相同的名称)。那么您认为将要打印什么?示例1@SpringBootApplication
public class Applica
转载
2024-03-19 15:02:04
101阅读
在一次项目中发现了一个不正常的现象,弄了半天才弄明白咋回事,当初手贱瞎写,造成的困扰。不多说,来一起看下。 由于业务的需要我定义了一个类,其作用协议传输数据之用。public class Transmission {
public void comd1(){
System.out.println("发送命令1");
}
public void c
转载
2024-06-11 13:43:15
64阅读
1.注册
//存储注册的俄BeanDefinition
private final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<String, BeanDefinition>();
//向IoC容器注册解析的BeanDefiniton
publ
转载
2024-03-26 17:06:22
131阅读
1.Bean的作用域所有的spring bean默认都是单例。当容器分配一个Bean时,不论是通过装配还是调用容器的getBean()方法,它总是返回Bean的同一个实例。有时候需要每次请求时都获得唯一的Bean实例,那么就需要覆盖Spring默认的单例配置。当在Spring中配置<bean>元素时,可以为bean声明一个作用域。为了让spring在每次请求时都为bean产生一个新的实
转载
2024-02-23 21:13:33
128阅读