Spring
文章平均质量分 87
spring使用中的点滴记录。
谦奕爸爸
路漫漫其修远兮,吾将上下而求索
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SpringBoot中常见动态代理实现大揭秘
在SpringBoot中,动态代理是实现AOP(面向切面编程)的关键技术,主要有三种实现方式:JDK动态代理、CGLIB代理和ByteBuddy。JDK动态代理基于Java反射机制,通过Proxy类和InvocationHandler接口生成代理对象,适用于代理接口,但性能开销较大。CGLIB代理通过继承被代理类生成子类,能够代理类,性能较高,但不支持final类或方法。ByteBuddy是一个现代化的字节码操作库,提供简洁的API,适合需要灵活性和高性能的场景。开发者可以根据具体需求选择合适的代理方式,J原创 2025-05-14 08:45:06 · 376 阅读 · 0 评论 -
SpringSecurity系列之-JWT
FindBugs是基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug,主要检查bytecode中的bug patterns,如NullPoint空指针检查、没有合理关闭资源、字符串相同判断错(==,而不是equals)等一、Security 关于代码安全性防护1.Dm: Hardcoded constant database password ...原创 2018-11-23 14:49:21 · 395 阅读 · 0 评论 -
SpringSecurity系列之-认证过程解析
大型项目中,分开发环境、测试环境、生产环境等;不同环境,配置不同,或数据源,或服务器,或数据库等;问题来了,如何使用Maven针对不同的环境来打包呢?Maven提供了Profile的概念,用来解决此类问题,其原理很简单,就是使用变量替换;举个例子来说明,测试项目目录结构如下图所示:比如开发环境和生产环境的数据库不同,db.properties配置文件内容如下原创 2017-05-24 10:01:25 · 604 阅读 · 0 评论 -
SpringSecurity系列之-SpringSecurity架构
CentOS 6.5 MySQL主从同步,MySQL版本5.6.25主服务器:centos6.5 IP:192.168.1.101从服务器:centos6.5 IP:192.168.1.102一、主服务器相关配置 1、创建同步账户并指定服务器地址[root@localhost ~]mysql -uroot -pmysql>use mysqlmysql>grant replicatio...原创 2018-04-18 10:51:21 · 303 阅读 · 0 评论 -
spring系列之-注解介绍@ConfigurationProperties
@ConfigurationPropertiesspring-boot 提供该注解将配置文件的值映射到类上使用。例子:1,这是我们在application.yml配置的druid连接池学习2.通过@ConfigurationProperties注解则会将值映射到该类中3.通过@Autowired标签即可访问到该对象,不过在使用之前必须在使用类上面增加注解@EnableConfig...原创 2018-11-21 10:16:08 · 3421 阅读 · 0 评论 -
spring系列之-使用@Autowired注解,出现提示信息Field injection is not recommended
一、出现提示信息“不推荐使用变量注入方式”如下图。spring团队建议:始终在bean中使用基于构造函数的依赖注入。始终对强制性依赖使用断言。思考:为什么不推荐使用,这种方式是不是有更好的替代方案。于是自己查了一下网上的资料做个总结。二、依赖注入有三种方式:变量(filed)注入 构造器注入 set方法注入变量注入这种方式是我们用的比较多的,下面我们来对比一下这几...原创 2019-12-04 15:11:12 · 1062 阅读 · 7 评论 -
spring系列之-个人常用配置文件解析
1、configuration.xml文件常用代码<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL MAP Config 3.1//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"&g...原创 2016-04-26 19:19:11 · 5534 阅读 · 0 评论 -
springmvc框架系列之-整合文件配置详解
web.xml的配置web.xml应该是整个项目最重要的配置文件了,不过servlet3.0中已经支持注解配置方式了。在servlet3.0以前每个servlet必须要在web.xml中配置servlet及其映射关系。但是在spring框架中就不用了,因为Spring中是依赖注入(Dependency Injection)的也叫控制反转(Inversion of Control)。但是也要配...原创 2016-03-10 17:22:37 · 582 阅读 · 0 评论 -
http系列之-核心内容
一、HTTP Request Method二、HTPP请求结构原创 2018-04-10 09:21:43 · 3907 阅读 · 0 评论 -
spring系列之-当spring 容器初始化完成后执行某个方法 防止onApplicationEvent方法被执行两次
在做web项目开发中,尤其是企业级应用开发的时候,往往会在工程启动的时候做许多的前置检查。 比如检查是否使用了我们组禁止使用的Mysql的group_concat函数,如果使用了项目就不能启动,并指出哪个文件的xml文件使用了这个函数。而在Spring的web项目中,我们可以介入Spring的启动过程。我们希望在Spring容器将所有的Bean都初始化完成之后,做一些操作,这个时候我们就可以实现...原创 2018-03-05 09:18:52 · 1547 阅读 · 0 评论 -
spring系列之-异常统一处理(1)
上一篇介绍了分库分表插件,但是多库操作涉及到分布式事务问题,大家都知道分布式事务需要涉及到数据库XA驱动,oracle原本就支持,mysql在5.6版本支持了该属性,atomikos插件封装了该特性的一个中间件。现在来介绍一个atomikos的使用。 首先是jar包依赖,maven配置如下:Xml代码 <dependency><groupId>...原创 2018-03-08 10:17:26 · 9613 阅读 · 2 评论 -
spring系列之-事务注解@Transactional注意事项
生产系统核心部分特别是涉及到账户的批量处理,放在凌晨定时运行,结果出问题了,现象很诡异:1)问题偶发,但没有规律2)程序没有按照预定步骤处理数据库相关数据3)发生后也没有发现有死锁,但出现异常的锁前后折腾了三次,但一直没有找到根源。后来另外一个问题发生时,分析发现数据库事务处理形同虚设,用Spring @Transactional注解的数据库事务完全没有生效,让人费解,甚至怀...原创 2019-02-15 16:55:26 · 848 阅读 · 0 评论 -
spring系列之-@validated 验证 List 参数
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010588262/article/details/82776088写了个接口:@GetMapping("/do")public int doSth(@RequestBody @Validated(MyGroup.class) List<Bean> myBean)发现@val...原创 2018-12-19 10:40:57 · 5503 阅读 · 0 评论 -
java系列之-自定义valid校验器
一、依赖包<!-- https://mvnrepository.com/artifact/javax.validation/validation-api --><dependency> <groupId>javax.validation</groupId> <artifactId>validation-api<...原创 2018-12-27 11:45:36 · 2644 阅读 · 1 评论 -
java系列之-自定义注解进行数据验证
API开发中经常会遇到一些对请求数据进行验证的情况,这时候如果使用注解就有两个好处,一是验证逻辑和业务逻辑分离,代码清晰,二是验证逻辑可以轻松复用,只需要在要验证的地方加上注解就可以。Java提供了一些基本的验证注解,比如@NotNull、@Size,但是更多情况下需要自定义验证逻辑,这时候就可以自己实现一个验证注解,方法很简单,仅需要两个东西:一个自定义的注解,并且指定验证器 一个验证...原创 2018-12-19 20:57:54 · 904 阅读 · 0 评论 -
spring系列之-切点、切面
最近写的项目里面都用到了很多切面,切点的知识,写完以后,来自我总结一下:举个例子:一个类(Show)里面有一个表演(display)的方法,在表演之前,应该有致辞(say)的方法,在表演之后,应该有鼓掌(hand)的方法。为了高内聚低耦合,表演的方法应该单独封装在一个类里面,致辞和鼓掌的方法应该另外封装,但在调用时必须按照顺序来调用执行。这时候就需要设置切面和切点了!切面应该设置在致辞...原创 2018-11-22 15:58:21 · 1425 阅读 · 0 评论 -
RequestMapping获取class路径以及方法method路径
得到处理类HandlerMethod headMethod = (HandlerMethod) handler;得到类路径RequestMapping mapping = headMethod.getMethod().getDeclaringClass().getAnnotation(RequestMapping.class);String[] classUrl = nu原创 2017-11-13 09:14:33 · 3402 阅读 · 0 评论 -
java系列之-ClassPathXmlApplicationContext加载多个XML文件
用如下数组的形式就可以了。public static void main(String[] args) throws IOException { ApplicationContext ctx = new ClassPathXmlApplicationContext( new String[]{"MultithreadTaskBeans.xml", "comm...原创 2017-06-02 11:41:30 · 4168 阅读 · 0 评论 -
spring系列之-DailyRollingFileAppender的使用
DailyRollingFileAppender是日志记录软件包Log4J中的一个Appender,它能够按一定的频度滚动日志记录文件。如果您不熟悉Log4J,建议阅读一下 使用Log4j进行日志记录。我们可以按下面的方式配置DailyRollingFileAppender:log4j.rootCategory=INFO,filelog4j.appender.file=org.a...原创 2017-06-16 09:10:15 · 1669 阅读 · 0 评论 -
springmvc+datatables+mybatis分页
1.分页封装类import java.util.HashMap;import java.util.List;import java.util.Map;import net.sf.json.JSONArray;import net.sf.json.JSONObject;import org.apache.commons.lang.StringUtils;import or...原创 2015-11-07 16:43:07 · 4539 阅读 · 11 评论 -
spring系列之-SpringMVC工作原理
SpringMVC框架介绍 1) spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Sp原创 2017-07-05 10:19:17 · 325 阅读 · 0 评论 -
spring系列之-SpringMvc中Interceptor拦截器用法
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆等。 一. 使用场景 1、日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。 2、权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录...原创 2017-09-01 09:59:44 · 401 阅读 · 0 评论 -
spring特性之-aop拦截
1.后台代码拦截器package com.usedcar.filter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;import org.apache.http.NameValu...原创 2016-01-16 14:52:17 · 623 阅读 · 0 评论
分享