首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏工作经验

    springboot设置bean默认主要bean

    当springboot有多个不能名称但是相同bean时候,可以使用 @Primary 注解设置其中一个为主要默认bean 有些类它没有用别名去注入bean,会导致注入时候找到多个相同bean,报错 /** * 短信类线程 */ public static final String SMS = "smsTaskExecutor"; /** * 默认通用线程池 (20); // 设置线程活跃时间(秒) executor.setKeepAliveSeconds(60); // 设置默认线程名称 executor.setThreadNamePrefix (20); // 设置线程活跃时间(秒) executor.setKeepAliveSeconds(60); // 设置默认线程名称 executor.setThreadNamePrefix (20); // 设置线程活跃时间(秒) executor.setKeepAliveSeconds(60); // 设置默认线程名称 executor.setThreadNamePrefix

    98810编辑于 2023-07-17
  • 来自专栏Linyb极客之路

    聊聊spring bean名称命名那些事儿

    01 前言 用了多年spring,一直想当然把spring默认beanName当成是类名首字母小写,比如HelloService其beanName为helloService。 直到有天对接了供方厂商接口,他有个类形如ABService,于是用 getBean(“aBService”) 方式获取bean,结果取到是null,一开始以为是ABservice没注入,后面采用 getBean ,我们可以直接查看哪个引用到@Service,再猜测下beanName生成规则 通过猜,我们基本上就可以定位出比较符合我们需求方法 03 源码验证 从上面的分析,我们可以知道如果是扫描bean * @return The decapitalized version of the string. */ 04 总结 通过扫描bean注解注入IOC时,如果不指定bean名称默认规则是类名首字母小写 ,如果类名前两个或以上个字母都是大写,那么bean名称与类名一样。

    41420编辑于 2022-01-07
  • 来自专栏Linyb极客之路

    聊聊spring bean名称命名那些事儿

    前言 用了多年spring,一直想当然把spring默认beanName当成是类名首字母小写,比如HelloService其beanName为helloService。 直到有天对接了供方厂商接口,他有个类形如ABService,于是用 getBean(“aBService”) 方式获取bean,结果取到是null,一开始以为是ABservice没注入,后面采用 ,bean)->{ System.out.println(beanName + ":" + bean); }); 打印出来结果,如下 ABService:com.github.lybgeek.ABService * @return The decapitalized version of the string. */ 总结 通过扫描bean注解注入IOC时,如果不指定bean名称默认规则是类名首字母小写 ,如果类名前两个或以上个字母都是大写,那么bean名称与类名一样。

    1.5K41发布于 2021-06-24
  • 来自专栏关忆北.

    深入分析 Spring 中 Bean 名称加载机制

    Bean元数据中获取到Bean名称。 如果Bean定义是一个带注解Bean定义,会调用determineBeanNameFromAnnotation()方法来基于注解生成Bean名称;否则会使用默认Bean名称生成策略buildDefaultBeanName 默认Bean名称生成策略部分:实现了buildDefaultBeanName()方法和getComponentAnnotation()方法,用于生成默认Bean名称。 当然,@Value中是可以不配置信息,此时执行fallBack,即调用 buildDefaultBeanName 方法生成一个默认 Bean 名称,并返回。 AnnotationBeanNameGenerator 缺点则是: 如果注解中未指定 Bean 名称,该生成器会默认使用类名作为 Bean 名称,这可能导致出现多个类名相同 Bean,需要特别注意;

    54110编辑于 2024-01-14
  • 来自专栏Java技术栈

    Spring 中 bean 为什么默认单例?

    Spring官方文档介绍如下图: 更多内容可以看官方文档介绍,非常详细: https://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch04s04 1.画图分析 2.源码分析 生成bean时先判断单例还是原型 如果是单例则先尝试从缓存里获取,没有在新创建 结论: 单例bean只有第一次创建新bean 后面都会复用该bean,所以不会频繁创建对象 2.减少jvm垃圾回收 由于不会给每个请求都新生成bean实例,所以自然回收对象少了。 3.可以快速获取到bean 因为单例获取bean操作除了第一次生成之外其余都是从缓存里获取所以很快。 单例bean劣势 单例bean一个很大劣势就是他不能做到线程安全!!! 总结 Spring 为啥把bean默认设计成单例? 答案:为了提高性能!!! 从几个方面: 少创建实例 垃圾回收 缓存快速获取 单例有啥劣势? 如果是有状态的话在并发环境下线程不安全。

    97421发布于 2020-02-12
  • 来自专栏对线JAVA面试

    Spring 为啥默认bean设计成单例

    Spring官方文档介绍如下图: 更多内容可以看官方文档介绍,非常详细: https://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch04s04 .html ---- 单例bean与原型bean区别 如果一个bean被声明为单例时候,在处理多次请求时候在Spring容器里只实例化出一个bean,后续请求都公用这个对象,这个对象会保存在一个 1.画图分析 2.源码分析 生成bean时先判断单例还是原型 如果是单例则先尝试从缓存里获取,没有在新创建 结论: 单例bean只有第一次创建新bean 后面都会复用该bean,所以不会频繁创建对象 2.减少jvm垃圾回收 由于不会给每个请求都新生成bean实例,所以自然回收对象少了。 3.可以快速获取到bean 因为单例获取bean操作除了第一次生成之外其余都是从缓存里获取所以很快。 关于这方面我正在准备写一篇文章,在整理当中,感兴趣朋友可以关注我,我后续写一篇详细文章。 ---- 总结 Spring 为啥把bean默认设计成单例? 答案:为了提高性能!!!

    22910编辑于 2022-10-27
  • 来自专栏Mr.Wang

    Debian9修改网卡名称默认eth

    /grub #在箭头处添加 net.ifnames=0 biosdevname=0 2.重新生成grub引导配置文件 grub-mkconfig -o /boot/grub/grub.cfg 3. 修改接口名称 nano /etc/network/interfaces #将箭头处改为 eth0 4.重启操作系统 可能发生错误: reboot后网卡无法启动 解决方法 将 auto eth0

    1.7K20编辑于 2023-03-13
  • 来自专栏数据处理与编程实践

    VBA: 获取电脑当前默认打印机名称

    借助Application.ActivePrinter属性,一方面可以查询当前默认打印机名称,另一方面,也可以指定默认打印机名称。 Printer_original As String Dim Path As String, path_saved As String, name_file As String '1 记录最开始默认打印机 PrToFileName:=path_saved, IgnorePrintAreas:=False Workbooks(name_file).Close False '3 恢复默认打印机 Application.ActivePrinter = Printer_original End Sub 该代码主要分为三步:(1)先记录当前默认打印机名称,一般电脑默认连接是实体打印机 ;(2)借助Printout函数将指定Excel文件转换为PDF文件,此时默认打印机名称已经发生变化,转变成了Microsoft Print to PDF; (3)恢复默认打印机,也就是第(1)步保存打印机名称

    3.4K20编辑于 2022-09-20
  • 来自专栏用户8851537的专栏

    dedeCMS修改默认管理员名称admin

    如下图: [avatar] 然后登陆到FTP,找到根目录下data文件夹然后打开进入backupdata这个文件夹,找到类似 dede_admin_0_ba5fabe4aa5ff9a7.txt这个文件 ,前缀都是一样,后缀可能会不一样。 下载到本地,用记事本打开,有个admin,这就是默认ID号,改成你想要名字即可,然后保存。如图: [avatar] 然后上传覆盖原来即可(不放心可以提前备份一下)。 如图: [avatar] [avatar] 然后你会发现登陆ID已经变成你改名称了。 [avatar]

    4.4K30发布于 2021-07-20
  • 来自专栏ytkah

    如何修改dedecms专题目录默认名称special

      专题有一个聚合效果,一般会比普通文章页更符合用户需求。 如果用dedecms建专题的话,默认目录是special,怎么修改修改dedecms专题目录名称呢,比如将/special/改为/s/这样更好记忆? 这样改也不容易让同行发现,不然你辛辛苦苦建专题几分钟时间就成为别人了。 第一步:打开data/config.file.inc.php $remotefile[3] = array( 'filedir'=>'/special', 'description 专题目录', 'dfserv'=>0, 'state'=>1, 'issystem'=>1 ); 改为如下: $remotefile[3]

    4.1K50发布于 2018-03-06
  • 来自专栏码农架构

    BeanDefinition元信息:除了Bean名称和类名,还有哪些Bean元信息值得关注?

    Spring 上一篇文章中已介绍了Bean 定义,什么是BeanDefinition? 下面主要源码结合模式分析BeanDefinition元信息「Bean配置元信息」 下面罗列了BeanDefinition元信息配置 ? 上面一表格形式概括说明BeanDefinition元信息配置,不是所有的属性配置都是必须,但是前面几个参数属性是必须 附加补充说明 Bean 作用域 (比如:我们常用singleton、prototype Bean 延迟初始化模式,默认情况下是非延迟,就是Bean在容器启动过程中会实时进行初始化,此时相对应属性或则配置会进行一定设置;相反延迟化,是按需进行初始化,这种方式可以有效减少启动时间, 需要时候对Bean进行初始化 Bean 初始化 & 销毁,通常都是成对出现 如何构建BeanDefinition?

    1.2K20发布于 2020-10-26
  • 来自专栏JAVA葵花宝典

    面试题:Spring 为啥默认bean设计成单例

    Spring官方文档介绍如下图: 更多内容可以看官方文档介绍,非常详细: https://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch04s04 .html ---- 单例bean与原型bean区别 如果一个bean被声明为单例时候,在处理多次请求时候在Spring容器里只实例化出一个bean,后续请求都公用这个对象,这个对象会保存在一个 1.画图分析 2.源码分析 生成bean时先判断单例还是原型 如果是单例则先尝试从缓存里获取,没有在新创建 结论: 单例bean只有第一次创建新bean 后面都会复用该bean,所以不会频繁创建对象 2.减少jvm垃圾回收 由于不会给每个请求都新生成bean实例,所以自然回收对象少了。 3.可以快速获取到bean 因为单例获取bean操作除了第一次生成之外其余都是从缓存里获取所以很快。 关于这方面我正在准备写一篇文章,在整理当中,感兴趣朋友可以关注我,我后续写一篇详细文章。 ---- 总结 Spring 为啥把bean默认设计成单例? 答案:为了提高性能!!!

    59340发布于 2019-08-09
  • 来自专栏springboot

    Spring源码解析(二):bean容器创建、注册默认后置处理器、bean定义扫描类

    一、Spring源码基础组件 阅读源码时候,接口与类过多,可以对照这里查看对应关系 1、bean定义接口体系 2、bean工厂接口体系 3、ApplicationContext上下文体系 二、AnnotationConfigApplicationContext (bean容器)会存放bean定义及bean名称集合等等 DefaultListableBeanFactory父类DefaultSingletonBeanRegistry会缓存所有实例化bean 接下来继续查看 自定义扫描包功能 调用ClassPathBeanDefinitionScanner有参构造方法 注册默认扫描方式 protected void registerDefaultFilters() { 容器 配置类bean添加到beanDefinitionMap中,与默认后置处理器存放在一起 三、总结 本篇文章主要讲述刷新上下文前准备工作 创建bean工厂容器,也就是map对象,以后缓存单例对象 添加常用注册 bean和解析注解后置处理器 创建根据包路径扫描bean定义

    72121编辑于 2025-01-21
  • 来自专栏不会写文章的程序员不是好厨师

    Spring源码初探-IOC(3)-Bean初始化-bean加载

    前言 前面两篇文章主要介绍是xml到BeanDefinition过程,我们知道在使用Spring过程中通常直接使用getBean(beanName)方式,getBean返回是实例化并且已经完成初始化后对象 Spring属性填充过程 Spring在Bean创建过程中提供扩展点及事件监听 Springinitiation过程及一种并行初始化实现。 getBean主干 在本文中只讨论单例对象(默认scope,非factoryBean类)创建过程 贴一段doGetBean主干代码 protected <T> T doGetBean( 在getSingleton(beanName, singletonFactory)方法中会调用getObject(),实际上也就是调用了createBean,bean创建实际上是从这个地方开始。 singletonObject : null); }} 在去掉异常处理后,这段代码非常简单,首先从singletonObjects map里试着拿bean,如果拿不到的话调用singletonFactory.getObject

    81820发布于 2018-09-05
  • 来自专栏后端精进之路

    Spring MVC系列-(3) Bean装配

    3. 高级装配Bean 3.1 Bean作用域 默认情况下,Spring中bean都是以单例形式存在,无论注入多少次,每次注入都是同一个实例。 @Configuration public class Cap3MainConfig { //给容器中注册一个bean, 类型为返回值类型, 默认是单实例 /* * prototype:多实例 boolean containsBean(String beanName) 判断工厂中是否包含给定名称bean定义,若有则返回true Object getBean(String) 返回给定名称注册 ) 返回以给定名称注册bean实例,并转换为给定class类型 Class getType(String name) 返回给定名称beanClass,如果没有找到指定bean实例,则排除NoSuchBeanDefinitionException 异常 boolean isSingleton(String) 判断给定名称bean定义是否为单例模式 String[] getAliases(String name) 返回给定bean名称所有别名

    43730编辑于 2023-10-19
  • 来自专栏玩转JavaEE

    Spring Bean 名称暗藏玄机,这样取名就不会被代理

    TienChin 视频杀青啦~采用 Spring Boot+Vue3 技术栈,里边会涉及到各种好玩技术,小伙伴们来和松哥一起做一个完成率超 90% 项目,戳戳戳这里-->TienChin 项目配套视频来啦 beanName 我没有使用默认 beanName,而是自己配置了一个 beanName,这个 beanName 配置方式是 类名完整路径+.ORIGINAL。 当我们按照这样规则给 bean 取名之后,那么即使当前 bean 已经包含在切点所定义范围内,这个 bean 也不会被代理了。 这是 Spring5.1 开始新玩法。 这种写法原理是什么呢? ,增加了额外能力: 在 bean 实例化之前先做一些预处理,例如直接创建代理对象,代替后续 bean 生成。 好啦,一个小小细节,加深大家对 Spring AOP 理解,感兴趣小伙伴可以去试试哦~ TienChin 视频杀青啦~采用 Spring Boot+Vue3 技术栈,里边会涉及到各种好玩技术,小伙伴们来和松哥一起做一个完成率超

    39020编辑于 2023-10-26
  • 来自专栏Lambda

    面试题:Spring为什么默认bean为单例?

    单例bean与原型bean区别 单例:一个bean被声明为单例时,处理多次请求时spring容器里只实例化一个bean,后续请求公用这个对象,这个对象存储在一个map中,当有请求时,先在缓存中(map 结论: 1、单例bean只有第一次创建新bean 后面都会复用该bean,所以不会频繁创建对象。 减少jvm垃圾回收 由于不会给每个请求都新生成bean实例,所以自然回收对象少了。 可以快速获取到bean 因为单例获取bean操作除了第一次生成之外其余都是从缓存里获取所以很快。 单例bean劣势 单例bean一个很大劣势就是他不能做到线程安全,由于所有请求都共享一个bean实例,所以这个bean要是有状态一个bean的话可能在并发场景下出现问题,而原型bean则不会有这样问题 总结 面试题:Spring 为啥把bean默认设计成单例? 答案: 为了提高性能 少创建实例* 垃圾回收 缓存快速获取 单例有啥劣势? 如果是有状态的话在并发环境下线程不安全。 什么是有状态对象?

    1.6K20发布于 2019-11-03
  • 来自专栏张善友的专栏

    Mono 3 默认Gc是Sgen

    Mono 3现在是默认 GC是SGen 垃圾回收器,垃圾回收器几个性能和扩展性方面的改进,以更好地利用多核处理器硬件。SGen 已移植到 Windows 和 MIPS。 mono 最开始使用是 Boehm-Demers-Wiser Conservative Garbage Collector ,mono 3.0之前版本作为默认垃圾收集器也是这个,Boehm垃圾收集器主要问题在于无法精确读取寄存器与栈帧 后来mono有了自己 Simple Generational GC , 就是分代式垃圾回收器Sgen,取代了Mono中传统 Boehm垃圾回收器。 SGen垃圾收集器使用两生代而非.NET中三个,但像.NET一样对于大对象使用独立堆。 分为两代,之前使用 conservative gc..可见其文档描述。 是一种较为落后实现,没有分代,.NET CLR是三代 大对象特殊处理,默认大于64KB作为大对象,.NET大对象是20KB以上,被分配到一个特殊大对象堆中。

    1.8K100发布于 2018-01-22
  • 来自专栏主机教程网 2bcd.com 的专栏

    WordPress怎么自定义默认电子邮件名称和地址?

    WordPress自带TinyMCE编辑器,对于一般文字编辑已足够了,但还是有童鞋希望它功能更多,所以诞生了各种编辑器增强插件,其实不用插件也可以为默认编辑器增加各种功能,下面的方法可以为编辑器增加选择中文字体功能 1、将如下代码加到当前主题 functions.php 模板文件中: function custum_fontfamily($initArray){ $initArray['font_formats ='幼圆';"; return $initArray;}add_filter('tiny_mce_before_init', 'custum_fontfamily'); 2、WordPress默认 styleselect';$buttons[] = 'fontselect';return $buttons;}add_filter("mce_buttons", "enable_more_buttons"); 3

    97500编辑于 2022-11-03
  • 来自专栏Java Web

    Spring(3)——装配 Spring Bean 详解

    而在 Spring 中提供了 3 种方法进行配置: 在 XML 文件中显式配置 在 Java 接口和类中实现配置 隐式 Bean 发现机制和自动装配原则 方式选择原则 在现实工作中,这 3 种方式都会被用到 不过 id 属性不是一个必需属性,name 属性也可以定义 bean 元素名称,能以逗号或空格隔开起多个别名,并且可以使用很多特殊字符,比如在 Spring 和 Spring MVC 整合中,就得使用 name 属性来定义 bean 名称,并且使用 / 开头。 我们有另外一种替代方式: <bean name="student2" class="pojo.Student" c:_0="3" c:_1="学生3"/> 我们将参数名称替换成了 “0” 或者说将 Spring 和其他组件分离(其他组件不依赖 Spring,但是又想 Spring 管理生成 BeanBean 作用域 在默认情况下,Spring IoC 容器只会对一个 Bean

    1.7K40发布于 2018-04-26
领券