202010-08 Spring循环依赖的解决办法,你真的懂了吗 介绍先说一下什么是循环依赖,循坏依赖即循环引用,两个或多个bean相互引用,最终形成一个环。Spring在初始化A的时候需要注入B,而初始化B的时候需要注入A,在Spring启动后这2个Bean都要被初始化完成Spring的循环依赖有两种场景构造器的循环依赖属性的循环依赖构造器的循环依赖,可以在构造函数中使用@Lazy注解延迟加载。在注入依赖时,先注入代理对象,当首次使用时再创建对象完成注入属性的循环依赖主要是通过3个map来解决的... 继续阅读 >
202010-08 Spring如何基于Proxy及cglib实现动态代理 spring中提供了两种动态代理的方式,分别是JavaProxy以及cglibJavaProxy只能代理接口,而cglib是通过继承的方式,实现对类的代理添加一个接口以及对应的实现类publicinterfaceHelloInterface{voidsayHello();}publicclassHelloInterfaceImplimplementsHelloInterface{@OverridepublicvoidsayHello(){System.out.println("hello");}}JavaProxy通过实现InvocationHandler实现代理publicclassCustomInvoca... 继续阅读 >
202010-08 Spring Boot 开发环境热部署详细教程 在实际的项目开发过中,当我们修改了某个java类文件时,需要手动重新编译、然后重新启动程序的,整个过程比较麻烦,特别是项目启动慢的时候,更是影响开发效率。其实SpringBoot的项目碰到这种情况,同样也同样需要经历重新编译、重新启动程序的过程。只不过SpringBoot提供了一个spring-boot-devtools的模块,使得SpringBoot应用支持热部署,无需手动重启SpringBoot应用,,提高开发者的开发效率。接下来,聊一聊SpringBoo... 继续阅读 >
202010-08 Spring Boot Actuator监控的简单使用方法示例代码详解 SpringBootActuator帮助我们实现了许多中间件比如mysql、es、redis、mq等中间件的健康指示器。通过SpringBoot的自动配置,这些指示器会自动生效。当这些组件有问题的时候,HealthIndicator会返回DOWN或OUT_OF_SERVICE状态,health端点HTTP响应状态码也会变为503,我们可以以此来配置程序健康状态监控报警。使用步骤也非常简单,这里演示的是线程池的监控。模拟线程池满了状态下将HealthInicator指示器变为Down的状态... 继续阅读 >
202010-08 Spring中基于xml的AOP的详细步骤 1、Aop全程是AspectOrientedProgramming即面向切面编程,通过预编译方式和运行期动态代理实现程序功能的同一维护的一种技术。Aop是oop的延续,是软件开发中的一个热点,也是Spring框架中一个重要的内容。是函数式编程的一个衍生范例,利用Aop可以对业务逻辑各个部分进行分割,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用行,提高了开发效率。简单的说就是把我们程序中的重复代码抽取出来,在需要执行的时候,... 继续阅读 >
202010-08 Junit写法及与spring整合过程详解 junit之前的写法://在Before中注入service类privateIUserServiceuserService;@BeforepublicvoidsetUp()throwsException{//使用xml的方式ApplicationContextapplicationContext=newClassPathXmlApplicationContext("applicationContext.xml");//使用注解的方式ApplicationContextapplicationContext=newAnnotationConfigApplicationContext(SpringConfiguration.class);userService=applicationContext... 继续阅读 >
202010-08 Spring Cloud 整合Apache-SkyWalking实现链路跟踪的方法 什么是SkyWalking查看官网https://skywalking.apache.org/分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。安装进入下载页面https://skywalking.apache.org/zh/downloads/这里用的是ElasticSearch7版本,所以你需要安装完成ElasticSearch7,不再赘述。解压后,可以修改启动端口apache-skywalking-apm-bin-es7/webapp/webapp.yml启动bin/startup.bat打开地址:http:.//lo... 继续阅读 >
202010-08 通过实例解析Spring Ioc项目实现过程 0.Iochttps://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html主要是实现一个控制反转,耦合性大大降低。1.建maven项目建立一个空的maven项目,然后pom.xml添加spring-context的依赖:<!--https://mvnrepository.com/artifact/org.springframework/spring-context--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId>... 继续阅读 >
202010-08 Spring Boot 捕捉全局异常 统一返回值的问题 在前后端分离的情况下,我们经常会定义一个统一的反回数据格式,通常都会包含状态码,返回信息,返回的数据,是否成功等参数。1、ResultCode 单独定义了一个ReturnCode枚举类用于存储代码和返回的MessagepublicenumResultCode{//成功SUCCESS(200),//失败FAIL(400),//未认证(签名错误)UNAUTHORIZED(401),//接口不存在NOT_FOUND(404),//服务器内部错误INTERNAL_SERVER_ERROR(500);publicin... 继续阅读 >
202010-08 spring+mybatis实现图书管理系统 本文为大家分享了spring+mybatis实现的图书管理系统,供大家参考,具体内容如下一、流程jsp页面发起请求-->控制器-->控制器通过一个service对象调用service方法-->service中通过xxxMapper对象调用dao中的方法-->查询数据库二、图书管理系统1、目录结构2、Book实体类packagecom.entity;importjava.io.Serializable;importjava.util.Map;importorg.apache.ibatis.type.Alias;publicclassBookimplementsSerializable{pri... 继续阅读 >
202010-08 Spring容器初始化及问题解决方案 1.Springbean组件”默认为单例模式scope=“singleton,运行JavaApplication容器启动时自动创建对象scope=“prototype”为多例模式,请求条件下才创建对象2beans组件里面default-init-method初始化方法加载,范围比较大,当没有此方法时不会报错,default-destroy-method销毁方法,default-lazy-init=“true/false”对象延时实例化3.bean组件里面init-method初始化无此方法,会报错,destroy-method销毁方法,lazy-init=“true... 继续阅读 >
202010-08 Spring Boot 在启动时进行配置文件加解密的方法详解 寻找到application.yml的读取的操作。从spring.factories中查看到#ApplicationListenersorg.springframework.context.ApplicationListener=\org.springframework.boot.context.config.ConfigFileApplicationListener,\ConfigFileApplicationListener该对象对application.yml进行读取操作ConfigFileApplicationListener事件的监听器,继承了SmartApplicationListener接口SmartApplicationListener接口继承了Applic... 继续阅读 >
202010-08 Java spring boot 实现支付宝支付功能的示例代码 一、准备工作:1、登陆支付宝开发者中心,申请一个开发者账号。地址:https://openhome.alipay.com/2、进入研发服务:3、点击链接进入工具下载页面:4、点击下载对应版本的RSA公钥生成器:5、生成公钥密钥(记录你的应用私钥):6、在支付宝配置公钥(点击保存):二、搭建demo1、引入jia包:<dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.9.9</version></dependency... 继续阅读 >
202010-08 Spring Boot如何开启并使用邮件服务 这里的邮件服务可以是自己搭的邮箱服务器,也可以是第三方的邮箱。本人使用的是网易的163邮箱。操作步骤如下:登陆网易邮箱163在设置中打开并勾选POP3/SMTP/IMAP服务然后会得到一个授权码,这个邮箱和授权码将用作登陆认证。添加maven依赖这里使用spring官方给我们提供的邮箱操作库。坐标如下:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dep... 继续阅读 >
202010-08 Spring boot事件监听实现过程解析 事件监听其实我们并不陌生,简单来讲,当程序达到了某个特定的条件,程序就会自动执行一段指令。在spring中也一样,我们可以使用spring中的事件监听来实现某些特定的需求。发布事件既然要监听事件,首先要发布我们的事件嘛。在spring中发布事件我们可以通过继承ApplicationEvent来发布我们的事件类。@DatapublicclassSendEventextendsApplicationEvent{publicSendEvent(Objectsource){super(source);}}我们得调... 继续阅读 >
202010-08 Spring boot使用logback实现日志管理过程详解 Springboot默认集成的就是logback,logback相对来说是优秀于log4j的,log4j2也是参考了logback的设计。本篇就是来看看如何使用logback。1.导入jar包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></dependency>2.创建logback-spring.xml配置文件<?xmlversion="1.0"encoding="UTF-8"?><!--scan配置文件如果发生改变,将会被重新加载scanPer... 继续阅读 >