后端框架
文章平均质量分 67
不平衡的叉叉树
I'm nobody, but I want to be somebody.
展开
-
关于数据库切换的麻烦
现项目使用了两个数据源,分别为A、B,两个数据库的数据结构并不相同,数据库A是用来做查询一些基本信息的,数据库B是用来保留业务操作数据的。后端是在mapper层用@DS注解来区分哪些地方用数据库A,而哪些地方用数据库B的。现在有个新需求,业务新增一个功能,用户可以在界面选择,有两个选项,分别是,而业务需要展示对应模式的数据,也就是说需要新增一个数据库C,用来保留训练模式下的数据,原本的数据库B用来保留作战模式下的数据,但是不管在哪种模式下,数据库A是不需要切换的。原创 2024-01-09 11:43:51 · 573 阅读 · 0 评论 -
教你一招解决:no active profile set,falling back to default profiles:default.
本来代码已经完成,现需要重新打包上传到服务器,我之前的打包步骤一直都是 重启项目-maven package,今天也不知咋的,我嫌重启太慢了,就直接 先clean-再package,结果就是项目在服务器上运行不起来了,当时我就知道肯定是打包出问题了。然后我就奇了怪了啊,我明明配置yml文件使用prod,怎么就告诉我没有配置呢?在网上溜达了一圈回来,检查了一下打包的target文件夹,发现target下面果然缺失了很多文件,包括资源文件(yml文件在该文件夹里面)。原创 2023-12-22 15:07:55 · 2833 阅读 · 0 评论 -
自定义Controller接口参数的值不能为空的校验
需求:在进入到相应Controller控制器前,需要先校验参数是否符合规范要求,如是否为空等等。有人说,可以使用@PathVariable里面的required属性控制,然而该属性只是代表参数是否必填,并不能校验参数的值是否满足要求。原创 2023-07-31 17:15:16 · 1134 阅读 · 0 评论 -
Spring 中,有两个 id 相同的 bean,会报错吗
在这种情况下,(如图)如果我们在同一个配置类里面声明多个相同名字的bean,在Spring IOC容器中只会注册第一个声明的Bean的实例。我们知道,spring容器里面的bean默认是单例的,所以id是唯一的。如果使用@Autowired注解根据类型实现依赖注入,因为IOC容器只有UserService01的实例,所以启动的时候会提示找不到UserService02这个实例。首先,在同一个XML配置文件里面,不能存在id相同的两个bean,否则spring容器启动的时候会报错。原创 2023-02-16 19:19:41 · 5350 阅读 · 0 评论 -
Spring事务失效,同一个类中的内部方法调用事务失效
声明式事务实现方式所谓声明式事务,也就是通过配置的方式,比如通过配置文件xml或者注解的方式,来告诉Spring哪些方法需要Spring帮忙管理事务,然后开发者只需要关注业务代码,而事务的事情则由Spring自动帮我们控制。配置文件的方式:即在spring.xml文件中进行统一配置,开发者基本不用关注事务的事情了,一切交给spring处理。基于注解的方式:只需要在想要添加事务的方法上加上@Transaction注解就可以了。实际工作中,基于配置文件的方式用的很少,我们工作中主要还是用注解的方原创 2022-12-12 12:57:02 · 8147 阅读 · 1 评论 -
Autowired注解与Resource注解的区别
两者的用法其实这两个注解的作用都一样,都是在做bean的注入,在使用过程中,两个注解有时候可以替换使用.两者的共同点@Resource注解和@Autowired注解都可以用作bean的注入. 在接口只有一个实现类的时候,两个注解可以互相替换,效果相同.两者的不同点@Resource注解是Java自身的注解,@Autowired注解是Spring的注解. @Resource注解有两个重要的属性,分别是name和type,如果name属性有值,则使用byName的自动注入策略,将值作为需要原创 2021-09-09 20:40:14 · 48990 阅读 · 26 评论 -
我们公司使用Log4j将项目日志输出到指定文件
一大早来到公司,刚打开电脑就发现有很多消息提示,不出所料都是来找我解决问题定位的,我也还是按照以往的套路,直接甩给他们一个项目的日志路径,让他们把日志发给我瞅瞅,然后开始定位。突然我想到,我这个日志文件是咋产生的呢?我们知道,在IDEA上运行项目的时候,控制台会输出我们的日志信息,刚开始我还以为我们是搞了一个流,异步的将控制台信息输出到日志文件里面,但是全量搜索了一下整个项目,并没有发现有任何关于把控制台内容输出的相关流已经代码。接着问了一下老同事,他也只是说了我们项目应该用的是Log4j把日志原创 2022-10-24 10:11:14 · 1389 阅读 · 1 评论 -
Spring的编程式事务和声明式事务
解释声明式事务:通过AOP(面向切面)的方式,本质就是使用环绕通知对方法执行前后进行拦截,即在目标方法执行之前开启事务,在执行完目标方法之后根据实际情况提交或回滚事务。有基于注解的方案(@Transactional)和基于XML配置文件的方案(AspectJ框架)。编程式事务:需要手动开启、提交、回滚事务。也就是需要自己编写一下开启、提交和回滚事务的方法。比较声明式事务优点:不需要通过编程的方式管理事务。也就是不需要在业务逻辑代码中掺杂事务管理的代码,只需要在配置文件中做相关的事务规则声明(原创 2022-10-18 10:52:05 · 583 阅读 · 0 评论 -
Spring循环依赖的随手记
Spring中创建Bean的步骤在Spring中创建Bean大概分三步:1、实例化,就是new了个对象(不完整的对象)2、属性注入3、初始化,执行一些aware接口中的方法,如AOP代理等如何解决循环依赖关键步骤是 提前暴露未完全创建完毕的Bean。在Spring中,只有同时满足一下两点才能解决循环依赖的问题:1、依赖的Bean必须都是单例。2、依赖注入的方式,不能全是构造器注入且beanName字母序在前的不能是构造器注入。为什么必须都是单例看了源码就会知道,循原创 2022-10-11 21:25:11 · 490 阅读 · 0 评论 -
我惊了...面试官居然问我Spring中的bean是否线程安全?
我先说结果:spring中的bean有可能不是线程安全的...感觉跟说了废话一样。别急,请看我下面娓娓道来。相信大家应该都知道,线程安全问题一般都是发生在成员变量上——因为成员变量是存放在堆内存中的,而堆内存又是线程共享的,所以在多线程环境下就会造成线程安全问题。Spring中bean的作用域spring中bean的作用域有5种,singleton、prototype、request、session和globalSession。其中singleton是spring默认的作用域。singlet原创 2022-03-31 20:25:48 · 2964 阅读 · 1 评论 -
前端到后端的参数传递问题(Axios+SpringMVC)
1-简单参数传递2-多个参数传递3-对象参数传递4-restFul风格传递参数5-axios传递参数6-模板字符串7-get和post传参区别8-解构赋值9-箭头函数的使用原创 2021-07-29 20:21:02 · 1309 阅读 · 0 评论 -
Mybatis-Plus入门案例、以及为什么不建议使用MP?
1 Mybatis调用流程Spring容器为接口创建代理对象. Spring容器启动对象立即创建 根据 @Autowired 注解动态注入Mapper接口的代理对象 用户通过Mapper接口调用方法.(执行业务操作) Mybatis根据接口方法动态匹配xml的映射文件(1.根据Mapper的接口路径匹配xml映射文件中的 com.jt.mapper.UserMapper(2.根据接口的方法匹配xml映射文件中的sql id之后执行Sql语句(3.Mybatis将结果集封装为对象之后返回..原创 2021-07-24 13:25:35 · 1341 阅读 · 1 评论 -
SSM之Mybatis
1 Mybatis1.1 概述MyBatis 源于 Apache 的一个开源项目 iBatis,而 iBatis 一词则来源于“internet”和“abatis”的组合,2010年这个项目由 Apache Software Foundation 迁移到了 Google Code,并且改名为MyBatis ,2013年11月其又迁移到 Github。Mybatis是一款基于Java的半自动的ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,延迟加载和缓存等特性,但原创 2021-07-19 20:42:10 · 363 阅读 · 0 评论 -
模拟Spring Ioc和DI的底层实现
1 Spring Ioc介绍IOC: 控制反转(Inversion of control)即控制权的转移,将我们创建对象的方式反转了,以前对象的创建是由我们开发人员自己维护,包括依赖关系也是自己注入。使用了spring之后,对象的创建以及依赖关系可以由spring完成创建以及注入,所以反转控制就是反转了对象的创建方式,从我们自己创建反转给了让spring创建。2 模拟Ioc的实现原理2.1 项目结构图2.2 类中结构2.2.1 创建Bean类package cn.tedu.myioc;im原创 2021-07-16 19:52:58 · 313 阅读 · 0 评论 -
三大框架之SpringMVC学习之路
具体流程:(1)首先浏览器发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;(2)DispatcherServlet——>HandlerMapping,处理器映射器将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象、多个HandlerInterceptor拦截器)对象;(3)DispatcherServlet——>Handle..原创 2021-07-14 09:15:31 · 312 阅读 · 0 评论