Spring
文章平均质量分 74
Spring
懒虫虫~
无论人生上到哪一层台阶,阶下有人在仰望你,阶上亦有人在俯视你。你抬头自卑,低头自得,唯有平视,才能看见真实的自己!
展开
-
通过AOP实现项目中业务服务降级功能
最近项目中需要增强系统的可靠性,比如某远程服务宕机或者网络抖动引起服务不可用,需要从本地或者其它地方获取业务数据,保证业务的连续稳定性等等。这里简单记录下业务实现,主要我们项目中调用远程接口失败时,需要从本地数据库中某表获取数据(本地数据库某表每天定时同步远程接口数据)。调用大致逻辑:前端–>服务A–>服务B(这里时公服,用于维护权限、人员等信息)其中服务B调用远程服务故障,进行服务降级,从服务B的本地数据库查询数据。项目中实际是通过故障注入方式,模拟远程接口宕机。这里简单通过除法异常模拟故障。二、测原创 2024-05-08 22:11:05 · 391 阅读 · 0 评论 -
【@PostConstruct、 @Autowired与构造函数的执行顺序】
Java提供的注解,被用来修饰方法,被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。调用的顺序为: 构造函数 > @Autowired > @PostConstruct(2)作用:@PostConstruct注解的方法在项目启动的时候执行这个方法,也可以理解为在spring容器启动的时候执行,可作为一些数据的常规化加载,比如读取数据字典之类、目录树缓存。原创 2023-09-23 19:47:03 · 2720 阅读 · 0 评论 -
枚举类使用案例
一、ICmsCommonEnum公共接口/** * @description 通用枚举公共类 */public interface ICmsCommonEnum { /** * 统一定义基础code码 * @return */ String getCode();} 二、ErrorCodeEnum枚举类package com.meditrusthealth.mth.cms.service.api.enums;import lombok.A原创 2022-01-20 20:00:00 · 335 阅读 · 0 评论 -
Lombok 妙用之@RequiredArgsConstructo注解
@RequiredArgsConstructo注解一、@Autowired二、@Resource三、Lombok提供的@RequiredArgsConstructor注解丢掉 @Autowired,@Resource 让代码更简洁!一、@AutowiredSpring提供的注解,默认的注入方式为 byType ,也就是根据类型匹配,当有多个实现时,则通过 byName 注入,也可以通过配合@Qualifier注解来显式指定name值,指明要使用哪个具体的实现类。二、@ResourceJava JS原创 2022-05-10 15:48:16 · 4103 阅读 · 0 评论 -
简单记录下前后端增删改查笔记
前后端增删改查笔记一、前端界面代码二、后端代码三、界面效果3.1查询3.2 添加3.3 修改3.4 删除一、前端界面代码主页面<script>var ctx = "${pageContext.request.contextPath}";</script><div style="display:none"><span id="ImportCustomer" style="background:#353737;color: #FFFFFF;display:原创 2021-11-23 22:00:00 · 815 阅读 · 0 评论 -
Spring项目中自定义注解的使用(定义日志切面类)
Java在Jdk1.5中引入了注解,Spring框架也正好把Java注解发挥得淋漓尽致。接下来简单介绍如何在Spring中自定义注解,其中会使用到Spring框架中的AOP(面向切面编程)。一、创建自定义注解package org.spring.springboot.config;import java.lang.annotation.*;@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)pu原创 2021-10-15 20:15:00 · 2186 阅读 · 0 评论 -
Java后端完成保存或更新功能笔记整理
本文只是一个项目开发过程中的整理笔记,主要介绍两种后台保存数据思路。总体架构Spring+SpringMVC+Hibernate+Shiro+Oracle思路一:实体类AACMyfocusTab@Entity@Table(name="AAC_MYFOCUS_TAB")//我的关注public class AACMyfocusTab implements Serializable{ private String id;//主键id private String adnum;//原创 2021-10-14 19:45:00 · 731 阅读 · 0 评论 -
Spring常用的三种注入方式+{集合注入(set注入一种)}
Spring常用的三种注入方式\集合注入三种注入方式1、构造方法注入2、set方法注入3、注解4、集合注入三种注入方式Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入,setter注入,基于注解的注入。注意:构造方法注入和set注入都是通过java的反射技术得以实现的。项目整体结构链接: 代码下载.1、构造方法注入这种注入方式是通过构造方法来实现,类中必须提供构造方法,属性的set方法不需要。package com.zhang.service;原创 2021-09-09 23:34:40 · 2284 阅读 · 1 评论 -
SpringMVC拦截器以及如何自己实现拦截器功能
一、SpringMVC拦截器SpringMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。1.1拦截器依赖于Web框架,实现上基于反射机制,属于面向切面编程(AOP)的一种运用。由于拦截器是基于Web框架的调用,因此可以使用Spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个controller生命周期之内可以多次调用。原创 2021-08-17 22:23:53 · 1329 阅读 · 0 评论 -
Spring事务@Transactional注解原理
一、思维导图Spring 事务管理分为编程式和声明式两种。编程式事务指的是通过编码方式实现事务;声明式事务基于 AOP,将具体的逻辑与事务处理解耦。声明式事务有两种方式,一种是在配置文件(XML)中做相关的事务规则声明,另一种是基于 @Transactional 注解的方式。默认配置下 Spring 只会回滚运行时、未检查异常(继承自 RuntimeException 的异常)或者 Error。@Transactional 注解只能应用到 public 方法才有效。1.1 声明式事务管理实现原创 2021-07-03 14:36:51 · 15941 阅读 · 0 评论 -
Spring FactoryBean和BeanFactory 区别
一、BeanFactory 是IOC容器的底层实现接口是ApplicationContext 顶级接口,Spring不允许我们直接操作 BeanFactory即bean工厂。BeanFactory 是顶层容器(根容器),不能被实例化,它定义了所有 IoC 容器必须遵从的一套原则,具体的容器实现可以增加额外的功能。所以为我们提供了ApplicationContext 这个接口,此接口继成BeanFactory 接口,ApplicationContext包含BeanFactory的所有功能,同时还进行更多的原创 2021-06-14 09:57:57 · 157 阅读 · 0 评论 -
Spring实现AOP的三种方式
一、项目公共代码UserService.javapackage com.zhang.service;public interface UserService { public void add(); public void delete(); public void update(); public void select();}UserServiceImpl.javapackage com.zhang.service;public class UserS原创 2021-05-03 14:25:56 · 237 阅读 · 1 评论 -
Spring中IOC创建对象的两种方式和创建时机
最近在学习Spring相关知识,官网文档如下Spring Core Technologies: https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-constructor-injection.方式一:通过无参构造方法来创建package com.zhang.pojo;public class User { private String name; public Use原创 2021-05-02 22:59:32 · 1440 阅读 · 0 评论 -
Spring、SpringBoot统一异常处理的3种方法
使用统一异常处理,将这些重复的try-catch块抽取出来,这样使我们可以更专注于业务逻辑的处理,同时能够使得异常的处理有一个统一的控制。一、HandlerExceptionResolver全局异常处理使用全局异常处理器只需要两步:1.实现HandlerExceptionResolver接口。2.将实现类作为Spring Bean,这样Spring就能扫描到它并作为全局异常处理器加载。二、Controller局部异常处理三、@ControllerAdvice如果单使用2中的@Exception原创 2020-12-30 18:02:33 · 8633 阅读 · 2 评论 -
Spring之循环依赖
一、循环依赖循环依赖其实就是循环引用,也就是两个或者两个以上的bean互相持有对方,最终形成闭环。二、Spring中循环依赖场景(1)构造器的循环依赖 【这个Spring解决不了】创建代码进行验证StudentApackage com.cyclicdependence;//构造器StudentApublic class StudentA { private StudentB studentB ; public void setStudentB(StudentB studentB原创 2020-10-16 16:45:50 · 146 阅读 · 1 评论 -
Spring常用注解
Spring注解分为两类,一种是使用bean(@Autowired , @Resource),另一种注册bean(如@Component , @Repository , @ Controller , @Service , @Configration)。一、注册bean@Repository、@Service、@Controller和 @Component 将类标识为Bean。这4者都需要事先在xml中配置自动扫描功能。比如不使用注解的时候,我们需要在Spring-*.xml中配置每一个dao和每一个原创 2020-09-29 11:31:20 · 404 阅读 · 1 评论 -
Spring Bean生命周期及线程安全
在IOC容器启动之后,并不会马上就实例化相应的bean,此时容器仅仅拥有所有对象的BeanDefinition(BeanDefinition:是容器依赖某些工具加载的XML配置信息进行解析和分析,并将分析后的信息编组为相应的BeanDefinition)。只有当getBean()调用时才是有可能触发Bean实例化阶段的活动。因为当对应某个bean定义的getBean()方法第一次被调用时,不管是显示的还是隐式的,Bean实例化阶段才会被触发。第二次被调用则会直接返回容器缓存的第一次实例化完的对象实例(因原创 2020-09-24 14:30:29 · 1067 阅读 · 0 评论 -
Spring常见面试题总结
1、Spring是什么? Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。主要由以下几个模块组成:Spring Core:核心类库,提供IOC服务;Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);Spring AOP:AOP服务;Spring DAO转载 2020-09-19 15:25:51 · 778 阅读 · 0 评论 -
Spring AOP实现原理实例
一、AOP二、AOP相关概念:切面(Aspect) :官方的抽象定义为“一个关注点的模块化,这个关注点可能会横切多个对象”。连接点(Joinpoint) :程序执行过程中的某一行为。通知(Advice) :“切面”对于某个“连接点”所产生的动作。切入点(Pointcut) :匹配连接点的断言,在AOP中通知和一个切入点表达式关联。目标对象(Target Object) :被一个或者多个切面所通知的对象。AOP代理(AOP Proxy) 在Spring AOP中有两种代理方式,JDK动态代理和C原创 2020-09-19 14:40:51 · 394 阅读 · 0 评论 -
谈谈Spring的三种注入方式
一、引言Spring框架对Java开发的重要性不言而喻,其核心特性就是IOC(Inversion of Control, 控制反转)和AOP(面向切面编程),平时使用最多的就是其中的IOC,我们通过将组件交由Spring的IOC容器管理,将对象的依赖关系由Spring控制,避免硬编码所造成的过度程序耦合。二、Spring三种注入方式1、Field注入@Controllerpublic class AppleController { @Autowired // @Resource pri原创 2020-08-01 17:59:18 · 2090 阅读 · 0 评论 -
Spring IOC和DI的理解
Spring框架中离不开Spring的IoC(控制反转) 、DI(依赖注入),这里从IOC是什么、IOC能做什么、IOC和DI的区别三个方面介绍下IOC和DI。一、IOC是什么IOC:Inversion Of Control,控制反转。它是一种设计思想,将你设计好的对象交给IOC容器控制,而不是传统的在你的对象内部直接控制,即控制权的转移。传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IOC是有专门一个容器来创建这些对象,即由IOC容器来控制对 象的原创 2020-05-22 18:03:53 · 4557 阅读 · 0 评论