摘要:
# Spring事务的七种传播行为 **首先举例事务的嵌套:** ```java ServiceA { void methodA() { ServiceB.methodB(); } } ServiceB { void methodB() { } } ``` *其中ServiceA#methodA(我 阅读全文
摘要:
一个普通对象,在内存中占多大? 普通对象在内存中主要分三部分组成 对象头:对象头分markwork和classpointer组成,markword主要存放标记位,classpointer用来存放类型指针 对象数据:这里主要存放的是指针的地址 对齐填充:hotspot规定,对象的起始地址占用内存大小必 阅读全文
摘要:
我们无需关心Logback版本,只需关注Boot版本即可,Parent工程自动集成了Logback。Springboot本身就可以打印日志,为什么还需要规范日志? 日志统一,方便查阅管理。 日志归档功能。 日志持久化功能。 分布式日志查看功能(ELK),方便搜索和查阅。 关于Logback的介绍就略 阅读全文
摘要:
在程序中要对某一段业务逻辑进行计时,一般采用如下方法来统计耗时: public static void main(String[] args) { long startTime = System.currentTimeMillis(); doSomeThing(); long endTime = S 阅读全文
摘要:
场景说明 比如我们想打印返回参数的具体情况,如果里面有枚举类型,打印的参数不完整。 @Getter @Setter @ToString public class ResultResponse { private String name; private Integer age; private Re 阅读全文
摘要:
logrotate基本都会默认安装,它主要是来将日志做切割的工具,比如SpringBoot打印日志,nginx的access和error日志等。 配置文件 主要有两个配置文件 /etc/logrotate.d 下的用户自定义配置文件 /etc/logrotate.conf 全局配置文件 配置ngin 阅读全文
摘要:
为什么要接入HTTPS?HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全。HTTP 标准端口是80 ,而 HTTPS 的标准端口是443。 推荐一篇文章,介绍的很详细:https://www.cnblogs.com/xinzhao/p/494934 阅读全文
摘要:
AOP(Aspect Oriented Programming):面向切面编程。AOP是在我们原来写的代码的基础上,进行一定的包装,比如在方法执行前、方法返回后、方法抛出异常后等地方进行一定的拦截处理或者增强处理。我们需要实现一个代理来创建实例,实际运行的实例其实是生成的代理类的实例。 Spring 阅读全文
摘要:
Aware接口是一个标志性接口,继承此接口的接口xxxAware的实现类,在容器创建完成后,会回调实现方法,下面举例: 有很多xxxAware接口,下面举两个例子 /** * description: 将实现xxxAware接口的Bean注册到IOC容器中的时候,会将xxxAware的实现方法进行回 阅读全文
摘要:
Spring为我们提供的多环境启动 配置类,注入三个不同环境的数据源,并加上注解 /** * @author zhangjianbing * @date 2020年9月23日 */ @Configuration public class MyConfig { @Bean @Profile("dev" 阅读全文
摘要:
首先定义实体 /** * @author zhangjianbing * @date 2020年9月23日 */ @Data public class Apple { @Value("${apple.color}") private String color; @Value("红富士") priva 阅读全文
摘要:
Spring的Bean后置处理器,BeanPostProcessor主要是在类初始化之前,跟之后处理相应的事。 实体类 public class Train { public Train() { System.out.println("Train构造方法执行。。。。。。"); } public vo 阅读全文
摘要:
@PostConstruct和@PreDestroy来自JSR250规范,在构造方法执行,并且赋值完成后执行PostConstruct,在容器移除对象之前执行PreDestroy。 实体类 public class Dog { public Dog() { System.out.println("D 阅读全文
摘要:
Bean实现接口InitializingBean和DisposableBean Bean实体类 /** * @author zhangjianbing * @since 2020/9/22 */ public class BlueYes implements InitializingBean, Di 阅读全文
摘要:
@Bean(initMethod = "init", destroyMethod = "destroy")方式 Bean实体 @Getter @Setter @ToString @AllArgsConstructor public class Person { private String name 阅读全文
摘要:
FactoryBean是用来向容器中注入Bean的接口。而BeanFactory是从容器中取Bean的接口。 定义Fish实体类 /** * @author zhangjianbing * @date 2020年9月23日 */ @Data public class Fish { private S 阅读全文
摘要:
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Import { /** * {@link Configuration}, {@link ImportSelecto 阅读全文
摘要:
采用注解的方式来注入bean 编写config类 /** * @author zhangjianbing * time 2020/09/23 * https://www.zhangjianbing.com */ @Configuration public class ConditionConfig 阅读全文
摘要:
懒加载,只有当使用Bean的时候才会被实例化。 @Configuration public class PersonConfig { /** * 懒加载主要用在单例模式上 * 标注了懒加载注解,容器初始化过程中不会实例化Bean * 只有当使用的时候才会实例化Bean,且只会实例化一次 */ @La 阅读全文
摘要:
Spring容器中的Bean默认是单例的,可以使用@Scope来设置Bean的类型 /** * @author zhangjianbing * time 2020/09/23 * https://www.zhangjianbing.com */ @Configuration public class 阅读全文