Spring
文章平均质量分 63
Spring
扛麻袋的少年
得过且过,一天又一天
展开
-
【Java面试题】Spring 为何需要三级缓存解决循环依赖,而不是二级缓存
1.Spring bean生命周期2.Spring 如何解决 bean 之间循环依赖转载 2022-06-01 17:00:05 · 1575 阅读 · 1 评论 -
基于注解方式@ResponseResult实现前后端分离项目,接口统一类型的返回
题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟;以前后端人员瞧不起前端人员,那现在后端人员要重新认识一下前端,前端已经很成体系了。一般系统的大致整体架构图如下:需要说明的是,有些小伙伴会回复说,这个架构太简单了吧,太 low 了,什么网关啊,缓存啊,消息中间件啊,都没有。因为这篇我主要介绍的是 API 接口,所以我们聚焦点,其他的模块小伙伴们自行去补充。 接口交互 前端和后端进行交互,前端按照约定请求 URL 路径,并传入相关参数,后端服务器转载 2022-05-16 09:38:01 · 2330 阅读 · 1 评论 -
Spring Security 捕获 filter 层面异常,返回我们自定义的内容
通常,我们通过@ControllerAdvice和@ExceptionHandler来捕获并处理Controller层面的异常。但是,filter是在controller层之前的,需要先通过filter才能到达controller层,此文就介绍一下如何捕获filter层面的异常。 Spring 的异常会转发到 BasicErrorController 中进行异常写入,然后才会返回客户端。所以,我们可以在 BasicErrorController 对 filter异常进行捕获并处理。所以,我们需要重.转载 2022-05-10 09:48:12 · 1458 阅读 · 0 评论 -
Spring Security日常
1.动态权限管理规则参考:《深入浅出Spring Security》 13.4.5 动态权限管理规则深入浅出Spring Security下载地址:链接:https://pan.baidu.com/s/1_4sCFFCzyeZprGyEehQFeA?pwd=f8at原创 2022-05-06 11:01:21 · 1480 阅读 · 0 评论 -
Spring Security跨域问题解决
前文介绍了:Spring 处理跨域问题的三种方案现在来看看 Spring Security 的跨域问题解决方案,共有三种方案。(摘自《深入浅出Spring Security》)在实际项目使用中,推荐使用第三种方案!!!(11.3.3 专业解决方案)good luck...原创 2022-05-05 11:19:27 · 2776 阅读 · 6 评论 -
Spring 处理跨域问题的三种方案
Spring 中关于跨域,一共有如下三种处理方案:(摘自《深入浅出Spring Security》)good luck原创 2022-05-05 09:51:10 · 3313 阅读 · 0 评论 -
Spring容器中实例化bean的四种方式
Spring IOC容器如何实例化Bean呢?传统应用程序可以通过new和反射方式进行实例化Bean。而Spring IOC容器则需要根据 Bean 定义里的配置元数据,使用反射机制来创建Bean。在Spring IOC容器中根据Bean定义创建Bean主要有以下几种方式:1.使用构造器实例化Bean 这是最简单的方式,Spring IOC容器既能使用1.默认空构造器也能使用2.有参数构造器两种方式创建Bean,如以下方式指定要创建的Bean类型:1.1 使用空构造器 使用空构造器进行定义,转载 2021-03-23 18:11:17 · 1006 阅读 · 0 评论 -
Spring扩展点:BeanFactoryPostProcessor
Spring的设计非常优雅,有很多的扩展点供我们对项目进行扩展,今天学习一下Spring其中之一扩展点------BeanFactoryPostProcessorBeanFactoryPostProcessor 即:BeanFactory后置处理器,是实现Spring容器功能扩展的又一重要接口。它是对 BeanDefinition对象进行属性相关的修改。 例如:修改bean属性值,实现bean动态代理等。很多框架都是通过此接口实现对spring容器的扩展,例如mybatis与spring集成原创 2021-03-16 11:16:09 · 449 阅读 · 0 评论 -
Spring扩展点:BeanDefinitionRegistryPostProcessor
Spring的设计非常优雅,有很多的扩展点供我们对项目进行扩展,今天学习一下Spring其中之一扩展点------BeanDefinitionRegistryPostProcessorBeanDefinitionRegistryPostProcessor 当我们用Spring来管理应用,我们会让Spring来管理所有的Bean。除了注解、Java配置和XML配置的方式来创建Bean,还有另外一种方式来创建我们的BeanDefinition。通过 BeanDefinitionRegistryPost原创 2021-03-16 10:29:01 · 2543 阅读 · 1 评论 -
StringUtils.tokenizeToStringArray()
读Spring源码的时候,遇到这么个东西,记录一下BeanDefinitionParserDelegate/** * Parses the supplied {@code <bean>} element. May return {@code null} * if there were errors during parse. Errors are reported to the * {@link org.springframework.beans.factory.parsing.Pro转载 2021-03-15 16:22:01 · 2312 阅读 · 1 评论 -
向 IOC 容器中添加组件的几种方式
通过 @Bean 的方式来导入组件(适用于导入自己的类/第三方组件的类)@Configuration public class MainConfig { @Bean public Person person() { return new Person(); }}通过 @CompentScan +@Controller @Service @Respository @compent 组合使用导入// 此处以SpringBoot为例// 1.在启动类..原创 2021-03-05 16:08:04 · 858 阅读 · 0 评论 -
Spring 使用 EmbeddedValueResolverAware 读取(properties/yml)配置文件内容
Spring 获取 properties/yml 文件单个属性值,一般使用 @Value 件属性值。 下面提供另一种基于 Spring 解析获取 properties/yml 配置文件单个属性值的方式,使用 EmbeddedValueResolverAwareproperties 文件:db.user=rootdb.password=123456db.driverClass=com.mysql.jdbc.DriverPropertiesUtil 工具类:@Component// @转载 2021-03-05 15:15:11 · 549 阅读 · 0 评论 -
@Scope注解 详细讲解及示例
本文目录1.@Scope注解是什么2.@Scope注解怎么使用3.singleton/prototype模式演示3.1 singleton单例演示3.2 prototype多例演示4.恶汉/懒汉4.1 singleton 恶汉 演示4.2 prototype 懒汉 演示5.Bean实例对象的销毁6.@Scope注解的使用场景1.@Scope注解是什么 @Scope注解是 Spring IOC 容器中的一个作用域,在 Spring IOC 容器中,他用来配置Bean实例的作用域对象。@Scope 具有原创 2021-03-05 14:40:31 · 35214 阅读 · 5 评论 -
@Conditional注解 详细讲解及示例
前言: @Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean。 @Conditional的定义://此注解可以标注在类和方法上@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME) @Documentedpublic @interface Conditional { Class<? extends Condit转载 2021-03-05 10:40:54 · 2419 阅读 · 1 评论 -
Spring IOC容器初始化后,执行一些逻辑操作的几种实现方式
本文目录:1.类继承ApplicationContextAware,重写setApplicationContext()方法2.类继承InitializingBean,重写afterPropertiesSet()方法3.在类下的方法上,添加@PostConstruct注解。(@PreDestroy注销使用)4.类继承BeanPostProcessor,重写postProcessBeforeInitialization()、postProcessAfterInitialization()方法5.SmartLif原创 2020-05-13 12:46:42 · 4812 阅读 · 4 评论 -
6.Spring 自定义命名空间
前言 我们在 Spring 的 xml 配置文件里经常定义各种各样的配置(tx、mvc、context等),我们将它叫做 Namespace,即:命名空间。如:<tx:advice>、<dubbo:application>。 &nb...转载 2020-03-14 17:15:51 · 1470 阅读 · 0 评论 -
5.Spring 如何解析自定义命名空间
说明 我们在 Spring 的 xml 配置文件里经常定义各种各样的配置(tx、mvc、context等),我们将它叫做 Namespace,即:命名空间。当使用 Spring 集成第三方框架时,也会看到一些 Spring 之外的配置,例如 Dubbo 的配置、security 的配置、redis 的配...原创 2020-03-14 16:34:19 · 1191 阅读 · 0 评论 -
Spring 常用注解
1.@Controller @Controller用于标记控制层(Controller层)2.@Service @Service用于标记服务层(Service层)3.@Repository @Repository用于标记访问层(DAO层)4.@Component @Component用于标记实体类层(Entity层),使用该注解,相当于将...原创 2019-03-14 13:40:19 · 2085 阅读 · 0 评论 -
2.@RequestMapping各个属性的使用
1.value属性@Controller@RequestMapping("user") //此处如果不省略,则为@RequestMapping(value="user")public class UserController { @RequestMapping("getUser") @ResponseBody public ModelAndView getU...原创 2019-03-14 14:36:52 · 7480 阅读 · 0 评论 -
3.@Resource和@Autowired的区别
相同点: @Resource和@Autowired,都用来完成对bean的注入;都可以写在字段上,或者是写在setter方法上//两者如果都写在字段上,那么就不需要再写setter方法。写在setter方法上的也不多见@Resource(name="userDao")private UserDao userDao;@Autowiredprivate ProductDao ...原创 2019-03-15 15:32:22 · 1375 阅读 · 0 评论 -
4.使用SpringBoot的方式(待写)
①spring-boot-starter-parent②spring-boot-dependencies参考:https://blog.csdn.net/qq_37604508/article/details/83064513https://blog.csdn.net/lzb348110175/article/details/90345569原创 2019-05-19 19:00:13 · 1191 阅读 · 0 评论 -
8.Spring AOP切面配置 && 单元测试
1.xml配置切面 ①定义一个Service方法/** * 用户Service */@Servicepublic class UserService { private final static Logger LOG = Logger.getLogger(UserService.class); public void add(User user){ ...原创 2019-07-08 21:59:23 · 5265 阅读 · 0 评论 -
9.Spring AOP基本内容介绍
1.什么是Spring AOP? AOP(Aspect Oriented Programming)面向切面编程,是OOP(面向对象编程)的延续 AOP,即通过运行时动态代理的方式,在实现不修改源码的情况下,给程序动态的添加功能的一种技术。 AOP,最主要的目的就是完成解耦2.AOP相关概念,你又知道多少? 1.切面 Aspect ...原创 2019-07-11 22:28:04 · 1374 阅读 · 0 评论