摘要:
# Spring6 探析之 Bean 的创建于销毁 ## 介绍 控制 bean 的创建与销毁有两类方法 - 在配置类中使用 @Bean 注解的 initMethod 和 destroyMethod 参数 - 使用 JSP250 规范中的 @PostConstruct 和 @PreDestroy 注解 阅读全文
摘要:
# Spring6 探析之 @Primary 注解 ## 介绍 使用 @Autowired 注入,如果存在多个相同类型的 bean,Spring 就会因为不知道使用哪一个 Bean 而报错,此时有两种解决方法: 1. 在 @Autowired 上使用 @Qualified 指定类 2. 使用 @Pr 阅读全文
摘要:
# Spring6 探析之@Lazy 注解 ## 介绍 在实际项目中,如果我们加载了过多的实例或配置,会导致 Spring 的启动速度非常慢,@Lazy 注解就是为了解决这种问题。 @Lazy 注解采用懒汉模式的单例模式,Spring 容器启动时,被标记的实例不会创建,只有在第一次使用时才会创建实例 阅读全文
摘要:
# Spring6 探析之@Conditional 注解 ## 介绍 我们写业务逻辑时,会用到 if-else 条件,@Conditional 注解可以通过**条件判断**是否要将 Bean 注入到 IOC 容器中,它可以**标记在类和方法上**,我们先看一下源码吧 ```java @Target( 阅读全文
摘要:
# Spring6 探析之@DependsOn 注解 ## 介绍 @DependsOn 注解可控制 bean 实例的初始化顺序,可以利用它手动控制 beanB 在 beanA 之后完成创建 下面是 @DependsOn 的源码 ```java @Target({ElementType.TYPE, E 阅读全文
摘要:
# Spring6 探析之@PropertySource 注解 ## 介绍 @PropertySource 注解用于加载配置类,在使用 Spring 时,我们可以使用 @PropertySource 注解将自定义的配置文件加载到 Spring 中,方便我们的自定义的开发 下面是 @PropertyS 阅读全文
摘要:
# Spring6 探析之@Import 注解 ## 简介 @Import 注解与 @Bean注解的作用相同,都可以将实例注册到IOC中,但区别是,@Import 只能作用在类上,并且使用@Import时,不需要再使用@Configuration注解 下面是 @Import 的源码 ```java 阅读全文
摘要:
# Spring6 探析之@Bean 注解 ## 介绍 @Bean 是spring的常用注解,他可以标记在方法和注解上,可以将方法的返回值放在IOC容器中,它又以下特点 - 单例 - 可指定bean的名称 - 可控制bean的初始化与销毁方法 让我们看一下@Bean的源码吧 ```java @Tar 阅读全文
摘要:
# Spring6 探析之@Configuration 注解 ## 介绍 @Configuration 注解大家都不陌生,该注解有以下特点 - 必须在类上使用 - 能够将被注解的类加载到IOC容器里 - 能够将类中被@Bean注解标记的方法加载到IOC容器里 @Configuration 有一些参数 阅读全文
摘要:
Spring Bean 作用域 主要了解 singleton 和 prototype 就好了,他们分别使用 单例模式 和 原型模式 | 来源 | 说明 | | | | | singleton | 默认作用域,一个BeanFactory有且仅有一个实例(并不是在JVM进程里是唯一的) | | prot 阅读全文
摘要:
redis 轻松实现分布式秒杀系统 利用redis操作的原子性,轻松实现一个分布式的秒杀系统。 假设设计背景: 1万人去抢10个商品 设计思路: 在redis中存储一个list,每次用户请求抢购商品,就删除list队列中的一个值,这样,利用redis的原子性,就可以实现一个分布式秒杀系统。 代码示例 阅读全文
摘要:
通过 HttpServletRequest 获取真实请求IP package cc.library.security.utils; import javax.servlet.http.HttpServletRequest; /** * CREATE BY funnyZpC ON 2018/5/3 * 阅读全文
摘要:
1. 引入 guava 依赖 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> 编写切面类 对 所有的controller 都做了限流 @Component @A 阅读全文
摘要:
先使用root用户进入mysql mysql -uroot -p 创建新用户 create user 用户名 identified by '密码'; 赋予所有权限 GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRA 阅读全文
摘要:
redis 使用 jackson | fastjson 序列化 我默认提供了fastjson序列化,jackson看看注释就好了,很简单 @Configuration public class RedisConfig { @Bean public RedisTemplate<Object, Obje 阅读全文