![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring
文章平均质量分 55
a
TizzyGoodhealth
反派角色
展开
-
授权验证方式有很多、但AOP最为优雅。
有时候项目中需要对接口进行校验,增加鉴权,确保 API 不被恶意调用。原创 2023-02-17 20:08:20 · 703 阅读 · 0 评论 -
AOP 切点指定多个包
我的问题是如何在表达式中指定多个不同的包(* package1 …))** 现在我正在为每个包声明一个单独的切入点,并且在一个单独的aop:before和aop:每个切入点的入口之后声明一个单独的切入点。但我认为这应该是定义多个包的切入点的理想方法。我使用Aspect在基于spring mvc的应用程序中记录活动。我使用@controller注释来定义应用程序中的任何控制器。我在两个不同的包中使用了两个不同的控制器, com.package1包含控制器1类,让它命名为AController。转载 2023-02-17 14:05:09 · 1197 阅读 · 0 评论 -
唰唰的手撕一个简单的Spring Mvc 框架
文章目录自定义实现Spring Mvc框架前言具体操作:步骤代码实现环境搭建自定义注解定义service 和 controller代码定义DisPatcherServlet处理器加载配置文件包扫描bean实例化和依赖维护handlerMapper 处理映射器doPost中 处理请求测试代码地址自定义实现Spring Mvc框架前言在使用Spring Mvc时候我们需要配置一个中央处理器DispatcherServlet用于分发请求,根据url查找处理器,然后再根据处理器去处理不同的Url去执行不同的方原创 2020-12-05 20:57:21 · 302 阅读 · 1 评论 -
注解方式自定义实现Spring Ioc容器 + 事务 + 动态代理
基于注解方式实现IOC容器前言步骤以及思路分析代码实现首先自定义注解项目结构配置信息定义初始化方法文件扫描路径bean实例化方法bean依赖注入方法事务处理注解方法包扫描bean实例化依赖注入扫描事务注解初始化方法步骤对外提供getBean(方法)测试前言上一篇点击查看使用xml来实现自定义IOC以及依赖注入关系维护,动态代理,以及事务操作;这次使用注解来实现IOC以及依赖关系维护步骤以及思路分析基于xml实现方式时,仅仅只需要在xml里面配置好bean的id以及bean的权限定命名,然后反射实例原创 2020-12-05 16:01:05 · 641 阅读 · 2 评论 -
自定义使用jdk和cglib动态代理实现aop控制事务
JDK和CGLIB动态代理实现AOP控制事务前言还是接着xml方式自定义实现Ioc容器这个实例中,没有进行事务得操作,不能保持一个操作总事务得一致性; @Override public void transfer(String fromCardNo, String toCardNo, int money) throws Exception { Account from = accountDao.queryAccountByCardNo(fromCardNo);原创 2020-11-21 19:34:09 · 234 阅读 · 0 评论 -
基于xml方式自定义实现Ioc容器
文章目录xml方式自定义实现Ioc容器前言没有IOC容器的时候模拟银行转账例子使用Ioc容器情况下IoC解决了什么问题xml方式自定义实现Ioc容器使用xml实现自定义简单的Ioc容器前言平时开发过程中,我们都是使用Spring来进行开发,Spring核心的Ioc容器帮助我们去创建对象这一过程被称作控制反转也叫Ioc在实例化一个对象时候,这个对象中用到一个对象类型的属性,容器把这个对象注入到实例化对象的过程被称作依赖注入简称DIIoc和DI说的是一个事情,针对的侧重点不同,IOC是站在容器角度创原创 2020-11-20 00:24:10 · 429 阅读 · 4 评论 -
Spring自动装配组件之Aware
Spring自动装配组件之Aware前言自定义组件使用Spring底层的组件(ApplicationContext)需要实现对应的Aware接口,在创建对象时对调用相关方法,以方法回调的方式将相关组件注入到自定义组件中。Spring 对此提供了一些接口 如 AwareAware接口我们来挑几个常用Aware 子接口ApplicationContextAware ioc容器组件B...原创 2020-05-03 20:23:32 · 235 阅读 · 0 评论 -
Spring 注解之 Conditional 使用
Spring 注解之 Conditional 使用前言在Spring 中我们要是注册bean使用 @Bean @Component等注解执行在会像容器中注册Bean,但有的时候我们需要根据条件进行注册Bean,哪些需要注册到Ioc中,哪些不需要。@Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean。注解详情在 org.spri...原创 2020-05-03 15:52:50 · 333 阅读 · 0 评论 -
Spring bean 懒加载(延迟加载)
Spring bean 懒加载懒加载:单实例 bean : 默认在容器启动的时候创建对象;懒加载: 容器启动不创建对象。第一次使用的时候也就是获取bean创建对象,并且初始化。代码示例启动后并没有打印出·创建bean`获取bean...原创 2020-03-22 22:01:28 · 1152 阅读 · 0 评论 -
你不可不知道的 SpringBoot 启动配置原理!
SpringBoot 的启动原理文章目录SpringBoot 的启动原理使用Spring Boot总结使用Spring Boot首先打开IDEA 创建一个Spring Boot项目选中 SpringInitializer 然后next 过程就不累赘了。然后打开pom文件我们发现Srping Boot 有个配置依赖启动依赖 <dependency> ...原创 2020-03-16 22:52:12 · 481 阅读 · 1 评论 -
SpringFramework的手动装配三种方式
SpringFramework的手动装配文章目录SpringFramework的手动装配装配组件有三种方式导入普通类导入ioc中的配置bean导入实现了ImportSelector接口的bean导入ImportBeanDefinitionRegistrar 的实现类测试装配组件有三种方式使用模式注解 @Component 等(Spring2.5+)@Component @Servic...原创 2020-03-16 20:44:11 · 462 阅读 · 0 评论 -
org.springframework.transaction.UnexpectedRollbackException: JTA transaction already rolled back (pr
org.springframework.transaction.UnexpectedRollbackException: JTA transaction already rolled back (probably due to a timeout)错误原因默认的Spring 默认的事务是 tomeout 是 -1原因是 这里使用Spring 默认事务java int timeout() d...原创 2019-12-09 16:46:00 · 3457 阅读 · 0 评论 -
Springboot之统一异常处理
Springboot全局异常处理在开发中经常会遇到一些异常,比如url不正确会产生404页面,获取一些参数,可能出出现一些异常,或者代码不规范莫名其其妙的异常问题,或者网络问题出现的异常。结果可能会呈现出一些不太友好的页面给用户展示,这时候我们就需要处理一些异常的问题。好在spring为我们提供了一种处理异常的机制。SpringBoot 统一异常处理— @ControllerAdvice ...原创 2018-12-23 18:45:13 · 123 阅读 · 0 评论 -
springboot 用thymeleaf 出现Error resolving template template might not exist or might not be acceacce问题
springboot 用thymeleaf 出现的错误问题 Error resolving template template might not exist or might not be accessible 原因是因为 thymeleaf 采用严格的HTML5 规则,必须要有结束标签。否则会包上面的错误 解决办法spring: #声明thyme...原创 2018-11-28 11:46:17 · 8777 阅读 · 1 评论 -
springboot 基于properties 类型安全配置
常规配置都得采用@value进行属性配置,属性值比较少的情况下还可以接受,但是属性值多的情况下就比较麻烦了。springboot 为我们提供了一种比较简单的注入方法!基于properties文件类型安全配置,代码如下第一种方法直接在application.properties文件中配置w.name = wangw.sex = boy Student@Component@Con...原创 2018-12-23 21:41:59 · 212 阅读 · 0 评论 -
springboot 之 注入资源给静态字段
springboot 注入资源给静态字段非静态字段可以这样子注入 @Value("${weChat.token}")private String token; @Value("${weChat.appid}")private String appid; @Value("${weChat.scope}")private String scope; @Va...原创 2018-12-25 23:00:11 · 695 阅读 · 0 评论 -
spring boot 自定义规则访问获取内部或者外部静态资源图片以及设置项目首页 图标等
###项目中需要将图片放在磁盘上,不能将图片放在webapp下面!springboot默认配置基本上可以满足我们的日常需要但是项目中大量用户上传的图片,不能放在tomcat下面,这样子每次重新部署项目的时候,图片就失效了,很是麻烦。所以此时就需要自定义配置springboot的项目静态文件映射springboot默认的配置规则映射 /** 到classpath:/staticcl...原创 2019-01-30 11:19:04 · 1420 阅读 · 0 评论 -
spring boot 自定义favicon 图片
springboot 默认Favion 图片默认是开启的。如何自定义自己的 favicon 图片呢?我们可以在配置文件中关闭springboot自带的 favicon 图片。然后即自己的 favicon.ico 放在springboot默认的路径下面即可。springboot默认提供的路径为:classpath:/staticclasspath:/publicclasspath:/...原创 2019-02-17 16:04:59 · 393 阅读 · 0 评论 -
spring 中bean 实现初始化和销毁bean之前后进行的操作的3种方法
spring 中bean 实现初始化和销毁bean之前进行的操作的3种方法第一种: 通过jsr-250规范提供的注解@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作第二种: 通过 在xml中定义init-method 和 destory-method方法(或者注解方式)第三种: 通过bean实现spring提供的 Initializi...原创 2019-04-07 22:58:12 · 518 阅读 · 0 评论 -
SpringBoot中获取ApplicationContext的三种方式
SpringBoot中获取ApplicationContext的三种方式ApplicationContext是什么?简单来说就是Spring中的容器,可以用来获取容器中的各种bean组件,注册监听事件,加载资源文件等功能。Application Context获取的几种方式1 直接使用Autowired注入@Componentpublic class Book1 { @Aut...原创 2019-04-14 23:49:32 · 56878 阅读 · 5 评论 -
Spring FactoryBean和BeanFactory 区别
1 BeanFactory 是ioc容器的底层实现接口,是ApplicationContext 顶级接口spring不允许我们直接操作 BeanFactory bean工厂,所以为我们提供了ApplicationContext 这个接口 此接口集成BeanFactory 接口,ApplicationContext包含BeanFactory的所有功能,同时还进行更多的扩展。BeanFactor...原创 2019-06-19 23:37:31 · 18348 阅读 · 8 评论 -
Spring IOC 容器中bean的生命周期
Spring IOC 容器可以管理bean的生命周期,spring允许在bean生命周期内对其执行特定的任务。spring IOC 容器对bean的生命周期进行管理过程1 通过构造器或者工厂方法创建bean实例2 为bean的属性设置值或者引用其他bean实例3 执行 bena初始化方法4 使用bean 实例5 关闭容器时候,执行bean销毁方法废话不多说上代码:User实体类...原创 2019-06-21 00:05:19 · 354 阅读 · 0 评论 -
SpringBoot两种配置文件详解
SpringBoot配置文件 properties格式# tomcat端口 #server.port=8181 # springboot 2.0 之后配置如下 #server.servlet.context-path=/springTest yml格式server.port : 8181 servlet.conte...原创 2018-11-09 23:38:01 · 966 阅读 · 0 评论 -
springboot 基于properties 属性 的常规配置
springboot 注入properties 属性值在之前注入属性值我们都是采用xml方式<context:property-placeholder location="classpath:xxxx.properties" ignore-unresolvable="true"/>采用注解方式在类上@PropertySSource 指定文件位置然后通过@Value注入属...原创 2018-11-17 22:16:08 · 500 阅读 · 0 评论 -
SpringBoot 打war包 部署到tomcat
SpringBoot 打war包 部署到tomcat修改main方法,继承 SpringBootServletInitializer 重写configure方法 改变启动方式@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {return bui...原创 2018-11-17 16:45:00 · 277 阅读 · 0 评论 -
SpringBoot 集成redis
SpringBoot 集成redis以前整合redis需要导入jedis redis依赖 还需要写一些redis连接类,连接池方法等,很麻烦而现在springboot提供一些简单的操作方法spring boot在1.5+的时候就不做对spring-boot-starter-redis做支持了,所以这里选用的spring-boot-starter-data-redis。...原创 2018-11-13 20:11:15 · 262 阅读 · 0 评论 -
SpringMvc拦截器
以前没有好好研究拦截器,今天研究一下,拦截器类似于Servlet 中的Filter,一般用来拦截请求,或者过滤一些东西,进行日志处理,编码等等! 1 SpringMvc拦截器实现机制实现接口HandlerInterceptor 接口中含有三个方法分别是: boolean preHandle(HttpServletRequest request, HttpServl...原创 2018-11-05 21:34:42 · 185 阅读 · 0 评论 -
SpringBoot RestFull 格式
什么是RestFull?RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。RESTful(即Representational State Transfer的缩写)其实是一个开发理念,是对http的很好的诠释。通常我们用的urlhttps://detail.tmall.com/item.h...原创 2018-11-13 00:53:09 · 381 阅读 · 0 评论 -
SpringBoot main方法详解
SpringBoot main方法详解 @SpringBootApplicationpublic class UdeamApplication { public static void main(String[] args) { SpringApplication.run(UdeamApplication.class, args); }}@...原创 2018-11-09 23:59:04 · 10664 阅读 · 4 评论 -
SpringBoot 默认生成的pom配置文件详解
SpringBoot 默认生成的pom配置文件详解 创建springboot 默认选择web生成的配置文件 pom文件内容<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3...原创 2018-11-09 23:52:55 · 3655 阅读 · 0 评论 -
SpringAOP之原理实现
Aop 实现方式 原理: 通过JDK Proxy代理 和 InvocationHandler 这个类调用处理 两者结合实现动态代理先看jdk的描述此方法是代理实例的,调用处理程序必须实现接口 (一般我们都是面向接口 开发,spring默认采用这种方法实现)方法 再看看构造 方法的详细描述调用invoke方法需要传递三个参数,proxy对象...转载 2018-10-09 23:48:53 · 158 阅读 · 0 评论 -
Spring Aop 面向切面编程
1 Aop是什么?注明(此段话引自):https://blog.csdn.net/when_less_is_more/article/details/78175891?utm_source=copyAspect Oriented Programming 面向切面编程。解耦是程序员编码开发过程中一直追求的。AOP也是为了解耦所诞生。具体思想是:定义一个切面,在切面的纵向定义处理...原创 2018-10-08 00:14:27 · 253 阅读 · 0 评论 -
spring 控制反转(IOC)与依赖注入( DI )
1 什么是控制反转(ioc)? ioc 是spring 最重要的一个思想,控制反转我们以前自己通过自己new出来对象,我们 是执行人 ,我们有权利。控制反转就是反过来容器帮我创建对象这一过程,把创建对象的权利交给容器,需要对象我们就管容器拿。 没有ioc之前我们是怎么做的?在servrlet学习中,我们都是在serviceimpl 和 daoimpl 中 new 出来d...原创 2018-10-07 16:16:38 · 152 阅读 · 0 评论 -
springboot报错InvalidClassException 解决办法
请求路径后出现这样子的错误 百度查资料后原因如下: 这是序列化兼容性所致;java通过一个名为UID(stream unique identifier)来控制,这个UID是隐式的,它通过类名,方法名等诸多因素经过计算而得,理论上是一一映射的关系,也就是唯一的。如果UID不一 样的话,就无法实现反序列化了,并且将会得到InvalidClassException。当要人...原创 2018-09-11 13:47:34 · 534 阅读 · 0 评论 -
springboot整合redis(单台)
首先确保自己已经成功安装redis不管是win的还是linux的! windows 下载地址http://files.cnblogs.com/files/cuiwenyuan/Redis-3.2.100-Windows-32.zip https://github.com/ServiceStack/redis-windows 下载完之后解压即可解压后目录 启动命...原创 2018-07-18 22:47:58 · 1046 阅读 · 0 评论 -
SpringBoot 集成redis 缓存击穿 单机
SpringBoot 集成redis 缓存穿透redis缓存用户在访问数据查询数据时候,第一次查询到则存到数据库存储到redis,以后查询直接去redis查询!我们先看下面代码,然后做个小测验。public User selectByPrimaryKey(Integer id) { //查询缓存 User user = (User) ...原创 2018-11-15 06:51:49 · 1647 阅读 · 2 评论 -
SpringBoot 整合JSP
SpringBoot 整合MVC 配置# 前缀 #spring.mvc.view.prefix = /WEB-INF/jsp/# 后缀 #spring.mvc.view.suffix = .jspmaven 依赖<!-- 内嵌tomcat 解析 jsp 依赖 --><dependency> <groupId>org....原创 2018-11-11 23:33:48 · 883 阅读 · 0 评论 -
SpringBoot 集成thymeleaf
thymeleaf 是springboot默认的引擎模板springboot 默认提供static 和 templates 两个 文件夹分别用来存放静态文件和动态文件由于springboot默认采用thymeleaf 引擎模板,所以不需要配置一些页面映射和静态动态资源路径配置springboot会默认去static和templates文件夹下面找静态页面直接访问h...原创 2018-11-23 16:45:45 · 166 阅读 · 0 评论 -
SpringBoot关闭日志logo图像
SpringBo关闭日志logo图像 主方法springApplication.run(DemoApplication.class,args);点击run方法进去可以看到public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) { ...原创 2018-11-16 22:34:25 · 621 阅读 · 0 评论 -
SpringBoot2.0继承WebMvcConfigurationSupport 实现拦截器,视图解析失效解决办法
SpringBoot2.0继承WebMvcConfigurationSupport 实现拦截器 但是运行的时候跳转页面时候会报错javax.servlet.ServletException: Could not resolve view with name 'index' in servlet with name 'dispatcherServlet'视图无法解析,明明配置了s...原创 2018-11-16 19:27:46 · 3368 阅读 · 0 评论