![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
sssdal19995
这个作者很懒,什么都没留下…
展开
-
tomcat通过springmvc方式启动springboot项目,手动设置logback日志级别
首先我们需要准备一个监听器public class WsdLogInfoListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { // 上下文初始化的时候设置一下日志级别 Logger root = LoggerFactory.getLogger("ROOT"); if(r.原创 2021-05-25 17:47:20 · 286 阅读 · 0 评论 -
spring-cloud之利用PropertySourceLocator修改程序启动时默认配置
最近在将seata和我们的老项目框架进行整合,在整合过程中遇到了一个棘手的问题,我们需要通过自定义的一个配置来决定seata是否开启,通过查看seata的api之后发现当我们将seata的数据源代理和全局事务配置关掉之后,就能关闭全局事务,配置如下:seata.enable-auto-data-source-proxy=false #关闭数据源代理seata.service.disable-global-transaction=true #关闭全局事务但是我们不可能既要修改框架自定义的配置,又去修原创 2021-03-13 17:12:00 · 701 阅读 · 1 评论 -
springcloud-alibaba学习笔记(四)seata使用(基于oracle数据库)
软件安装下载安装包启动软件当前测试环境搭建使用最简单的模式 所以直接解压压缩包,然后进入bin目录中执行启动脚本,注意当使用file作为配置中心和注册中心的时候 什么配置文件都不用改项目搭建项目结构maven坐标<dependencies> <dependency> <groupId>org.example</groupId> <artifactId>seata-oracle原创 2021-02-24 11:52:02 · 539 阅读 · 0 评论 -
springboot+ nginx 实现ssi遇到的坑
现象 :后台生成的html通过nginx访问缺失样式,导致的原因是Nginx上的ssi 未生效可能造成的原因:1. nginx 没有打开ssi ,如果需要支持shtml 需要加一个配置 server { listen 80; server_name www.xuecheng.com; ssi on;# 打开ssi ssi_silent_errors on;# 当ssi引入界面报错时不影响外部 ssi_types text/shtml;#支持sht原创 2020-06-20 13:28:49 · 582 阅读 · 2 评论 -
spring扫描自定义注解
定义一个注解 用于管理插件是否开启@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@Documented@Import(DemoRegistrar.class)public @interface EnableDemo { /** 需要扫描的包 bean存放目录*/ String[] basePackages() default {};}定义一个自定义注解,从而标明哪些类需要被spring管理@..原创 2021-01-17 11:12:38 · 1625 阅读 · 1 评论 -
SpringBoot 自定义配置文件,并且自动补全
首先贴上一个官网上的教程,这个教程内说明了自定义配置改如何使用,经过本次探索得出一个结论,如何快速使用一门不熟悉的技术-论官方文档的重要性!起因现在有一个需求,我们有许多的自定义配置,而且我们的配置项随着时间会不断递增,如果直接使用@Value的方式,那么对于配置类的维护而言,毫无疑问是非常不友好的。所以我们需要做出改变。探索过程当我们打开spring的自定义配置官网教程之后,我们会发现下面这一段代码,springboot 提供了对于配置复杂对象的支持。于是我们结合学习到的oop思想,可以定义一原创 2020-12-23 21:01:08 · 700 阅读 · 0 评论 -
使用代码配置替代web.xml注入servlet、filter、listener
在传统项目中,我们通常是一个war包打天下,这个时候很多东西都依赖于web.xml进行配置,当项目越来越大,我们的xml文件也会不断膨胀,大家都知道xml的描述能力不太强,对于devolper而言,使用代码配置毫无疑问更加舒适。ServletContainerInitializer为实现上面这个目标,我们必须了解servlet 3.0 为我们提供的ServletContainerInitializer, 这个接口能够在所有遵循servlet3.0规范的容器启动时回调其中定义的方法/** * @v原创 2020-10-10 19:07:14 · 293 阅读 · 0 评论 -
通过springaop实现hibernate的分表
为什么要实现这样一个插件系统运行过程中难免会遇到一些数据量很大的业务,如果简单的将他们的数据全部放置到一张表中,那么经历一段时间之后表的查询会很慢,诚然可以通过索引解决慢的问题,但是当数据量达到一个量级之后索引还是会挂掉,所以必须有一个分表插件。为什么不直接使用其它的分表分库成熟产品由于项目框架问题,贸然引入其它中间件需要考虑代码侵入,出现问题能否及时解决。不自己造一下轮子,怎么之后轮子到底是方的还是⚪的实现过程因为当前使用的框架中orm层主要使用的是hibernate,所以我们需要在hi原创 2020-10-06 10:08:21 · 468 阅读 · 0 评论 -
记一次基于xml配置的springMvc自定义aop切面增强controller
实现目的:异常捕捉,统一处理实现白名单aop代码@Aspect@Component("wySystemErrorAdvice")public class WySystemErrorAdvice { @Autowired @Qualifier(WebExecptionResolver.beanid) private WebExecptionResolver webExecptionResolver; /** * 定义一个切点 此处去除了项目实际中使用的切点原创 2020-10-05 21:15:40 · 552 阅读 · 0 评论 -
微服务实战笔记-学成在线-day09
知识点: 1. Eureka的单机环境和高可用 2. Ribbon 3. FeignEureka的单机环境和高可用针对于eureka的单机环境和高可用,以及安全认证另外单独写了一篇笔记记录,详情可以点击这里进入此外还整理了以下怎么使用docker搭建eureka 高可用环境,详情请戳此处注意使用eureka之后,restTemplate会被增强,所以不能直接通过ip访问服务,需要通过服务名Ribbonribbon 是一个客户端负载均衡工具,首先这里需要理解客户端负载与服务端负载的区原创 2020-06-23 22:54:44 · 133 阅读 · 0 评论 -
springcloud-eureka的高可用与安全认证
EurekaEurekaServer依赖pom.xml<!-- 导入eureka --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </原创 2020-06-07 23:51:39 · 167 阅读 · 0 评论 -
spring的拓展点实战(一)-----@MapperScan原来是这样实现的
spring作为一个开放式编程框架,它提供了很多拓展点,本章主要实现下MapperScan注解,本篇文章实现的mapperScan是一个阉割版,没有实现扫描的功能,也没有真正去链接数据库,只是对mapperScan实现思路的一个体现项目和简单,核心类是MyBatisImportBeanDefinitionRegistrarpublic class MyBatisImportBeanDef...原创 2020-04-26 22:45:36 · 217 阅读 · 0 评论 -
原来Spring源码学习可以这么学(三)AnnotationConfigApplicationContext光构造函数干了这么多的事情你知道吗
问题清单本篇主要为以下几点解惑:ApplicationContext 是在什么时候构建的BeanFactory?构造函数中的reader和scanner到底是干什么的?ApplicationContext 是在什么时候构建的BeanFactory当我们调用AnnotationConfigApplicationContext的构造函数(没有传入beanFactory)的时候,明明我们...原创 2020-04-26 21:57:01 · 260 阅读 · 0 评论 -
原来Spring源码学习可以这么学(二)AOP
AOP概念梳理英文中文描述joinPoint连接点要让aop切入的方法pointCut切面如果把切面想像成为一张表,连接点就是其中的一行记录Advice通知在连接点的前或者后需要执行的内容Target object代理的对象Weaving织入在被代理的对象的连接点方法处加入通知的过程就叫做织入Aspect在AspectJ...原创 2020-04-10 17:20:38 · 114 阅读 · 0 评论 -
原来Spring源码学习可以这么学(一)IOC
最近再重新学习spring源码相关知识,1.对以前学的知识进行查漏补缺,2.学习如何阅读spring的官方文档。IOCspring支持的配置方式方式使用场景xml需要引入第三方的组件,但是不能修改源码注解可以直接在需要注入的组件上加注解javaconfig基本上任意情况都能使用对于spring而言,三种配置方式可以同时存在,互不影响。1.当xml...原创 2020-04-02 23:45:55 · 113 阅读 · 1 评论 -
原来spring是这样处理requestBean的
原来spring是这样处理requestBean的不久前面试时候,由于简历中吹了牛X,然后被面试官问到了spring中requestBean的生命周期,由于很少用到单例之外的bean,所以当时瞎巴拉巴拉最后gameOver,最近有时间了赶紧给spring中对于bean的创建模块重新梳理一遍。bean的创建跟过spring源码的都知道bean的创建是在AbstractApplicationCo...原创 2020-03-28 13:12:50 · 1419 阅读 · 1 评论 -
原来spring是这样处理循环依赖的
构造器循环依赖场景: A的构造器依赖B,B的构造器依赖C ,C的构造器依赖ASpring的处理:报错 BeanCurrentlylnCreationExceptionsetter循环依赖场景: A依赖B,B依赖C ,C依赖A 但是都是通过setter方法设置Spring的处理:再创建A的时候会根据无参构造器构造A,然后暴露一个ObjectFactory用于返回A,同样的逻辑去构建B和C...原创 2020-03-28 13:58:45 · 158 阅读 · 0 评论