spring bean单多例和生命周期,java枚举,java默认访问权限,不推荐字段注入的原因,使用接口的原因,try catch finally,Spring boot配置文件中的on和of...

spring bean单多例和生命周期

spring中,bean可以被定义为两种模式,分别为singleton和prototype模式,默认是单例模式,即只有一个共享实例存在,每次请求这个bean都会返回这个唯一的实例。而多例模式每次请求bean都会返回一个新的bean实例,相当于每次请求都new一个实例。

配置单例多例的方法:在bean上面加注解@scope()注解可以配置单例和多例模式

bean生命周期

  • spring只会帮我们管理单例模式bean完整的生命周期,而多例模式的bean spring创建好后把它交给使用者之后便不会再管理
  • 对于Beanfactory容器,bean在第一次被调用的时候在被真正的创建,但是对于ApplicationContext容器,在第一次加载容器的时候就创建所有bean,等容器关闭的时候销毁所有对象

java枚举

枚举除了不能继承,基本上可以把枚举当做一个类来看待

  • 枚举内可以添加任何方法,甚至是构造方法,但是声明枚举常量时不允许使用赋值运算符为枚举常量赋值,但是可以通过方法来实现间接赋值
  • 枚举常量不需要任何修饰符

java默认访问权限

不论是类,方法,还是变量,当不加任何权限修饰词时,访问权限都是包访问权限


不推荐字段注入的原因

  • 对象的外部可见性,无法在容器外部注入依赖
  • 可能导致循环依赖问题,即a依赖b,b依赖a,结果在创建它们两个时导致无法创建
  • 无法设置注入的对象为final,也无法注入静态变量

三种注入方式:字段注入,构造函数注入,setter函数注入


使用接口的原因

  • 有利于代码的规范,服务的规范
  • 有利于后续代码的运行维护修改

try catch finally

块中不含return的情况

  • try中没有异常:则执行完try中的内容后执行finally里的内容
  • try中含有异常,catch中无异常:捕获try中的异常之后,跳转到catch里面执行,执行完后执行finally里的内容
  • try中含异常,catch中也含有异常:跳转到catch之后,catch也出现异常,然后跳转到finally里执行完后抛出异常

块中含有return的情况

  • finally中含有return时会覆盖try-catch里面的return值,并且会覆盖catch中抛出的异常信息
  • 如果catch中有return语句,并不是函数直接返回,而是执行完finally里的内容后再返回

springboot配置文件中的on和off

在其配置文件中,on和off被默认读出来是true和false,而带单引号的on和off才会被读成原始字符串,其他字符串均被读出原始字符串

StringBuilder类

程序开发过程中,经常碰到字符串需要连接的情况,常用的方法是使用 + 号,但是这种方法每加一次就新创建了一个String对象,而且连接效率比较低,并且比较费空间,使用StringBuilder类,即可变长字符序列,可以避免这种问题的产生。

  • append():字符串连接
  • toString():返回一个与构建器或缓冲器内容相同的字符串

final用法

  • 修饰基本数据类型:表示该数据是个常量,不能被修改
  • 修饰对象的引用:表示该引用不可被重新赋值,即该引用一直指向该对象,但是对象仍然可以被修改
  • 修饰类:表示该类不可被继承
  • 修饰方法:说明当前方法已经满足要求,不允许继承的类来重写此方法进行扩展

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容