spring
文章平均质量分 84
甜美河边的钓鱼人
田美村左岸的钓鱼人
展开
-
自定义springboot的starter
自定义starter可以减少配置类的编写,比如我自定义了某个配置类,需要一些属性的配置,然后在多个模块中引用的话,那么都需要加入这个配置类的信息,常见的是通过@Configration注解来使用,或者是使用xml的方式,但是其实对于各个模块来说,这个信息是重复的,可以公用,那么可以自定义一个starter来引入。1、编写你需要引入的功能。比如我这里就是想引入MyWife这个实列。你可以通过@Configuartion这个注解直接引入,这里演示通过自定义starter的方式引入。这个最简单,.原创 2021-03-24 14:42:54 · 220 阅读 · 1 评论 -
spring事务源码 (声明式事务管理)
基于spring AOP实现,其本质是对方法前后进行拦截。在方法之前创建或者加入一个事务,在执行完目标方法之后根据情况进行提交或者回滚操作。通过@Transactional注解,能做到代码的不侵入。在使用@Transactional注解之前,需要启动注解:@EnableTransactionManagement@EnableTransactionManagement 默认的属性值boolean proxyTargetClass() default false;AdviceMode mode(原创 2021-01-26 15:54:23 · 86 阅读 · 0 评论 -
spring事务源码 (编程式事务管理)
测试用例:事务模板类:org.springframework.transaction.support.TransactionTemplatepackage com.vip.xstore.spring;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.jdbc.core.原创 2021-01-25 13:59:02 · 384 阅读 · 0 评论 -
springboot自动装配
其实springboot的自动装配流程的关键点是通过@Import注解和对应的ImportSelector接口实现,加入相关需要导入的配置文件properties,配置文件中默认配置了需要导入的类,结合过滤规则和项目中是否导入相应的jar来确定是否需要导入相关的类。首先介绍下@Import和ImportSelector接口的使用。注意:我这里是搭建的源码环境:普通的pojo:package mytest.person;public class Person2 { .原创 2021-01-24 11:56:53 · 103 阅读 · 0 评论 -
通过spring的aop实现一个建单的mock功能
在分布式开发的时候,将一个需要分成多个模块,需要模块间的调用,那么就会涉及到远程调用的情况。但是在和同事联调之前,总会出现时间对不上的情况,比如他们没有时间跟你对接,那么就不能联调,就有一些流程走不下去了。此时就需要用到mock,制造一些返回,用于将 流程走下去。比如需要调用的一个接口,那么就给一个假的返回结果,模拟调用成功的场景。你可以直接在代码里面加入返回结果,就是不去调用他的方法,自己开一个方法,手动写返回的响应。我这里通过spring 拦截器和注解来实现一个mock的简易功能。首先定义.原创 2020-11-12 21:06:13 · 648 阅读 · 0 评论 -
spring事务传播行为
spring的事务传播行为,一共有七种,查看枚举类:public enum Propagation { REQUIRED(0), // (默认值) 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中 SUPPORTS(1), // 支持当前事务,如果当前没有事务,就以非事务方式执行 MANDATORY(2), // 强制性的一时,调用具有该事务行为的方法,如果没有事务,会抛出异常 REQUIRES_NEW(3),// 不管是否有事务,都原创 2020-06-02 17:54:28 · 133 阅读 · 0 评论 -
springboot-多数据源的事务处理(单服务,操作多个不同的数据库)- atomikos
https://blog.csdn.net/chenjianhuideyueding/article/details/105273172上一篇文章引入了两个不同的数据源,操作不同的数据库,现在修改下相应的服务实现类(加事务注解和异常代码):import org.springframework.jdbc.core.JdbcTemplate;import org.springframewo...原创 2020-04-07 17:00:22 · 1003 阅读 · 0 评论 -
springboot-多数据源(基于JdbcTemplate的方式)
引入依赖pom.xml: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELE...原创 2020-04-02 16:46:17 · 286 阅读 · 0 评论 -
springboot-注解使用(4)-@Value @PropertySource @Autowired @qualifier @Primary @Resource @Profile
@Value 可以为属性注入某些值,支持字符串,spel表达式和配置文件的方式@Value("caraliu")private String name;@Value("#{29-5}")private int age;@Value("${spring.desc}")private String desc;在使用配置文件的时候,要将配置文件读入运用中:在配置类上加入: @...原创 2020-03-22 23:18:43 · 138 阅读 · 0 评论 -
springboot-注解使用(3)-@Conditional @Import FactoryBean
@Conditional注解会根据某个条件注册相应实列,如果不满足则不注册。@Configuration@ComponentScan(value = "cn.caraliu")public class Configure { @Conditional({MyCondition.class}) // 条件的判断 @Bean public Caraliu car...原创 2020-03-22 09:51:16 · 150 阅读 · 0 评论 -
springboot-注解使用(2)-@ComponentScan @Service @Controller @Repository等
@componentScan注解和@Service,@Controller等注解自动注入实列到ioc容器中/*** @author jeffchan 2020/03/20*/@Configuration@ComponentScan(value = "cn.caraliu") //value指定扫描cn.caraliu包下的组件public class Configure {...原创 2020-03-22 01:16:31 · 456 阅读 · 0 评论 -
springboot-注解使用(1)-@Cofiguration @Bean @Lazy @Scope
使用@Configuration (配置注解)和@Bean注解将实列注入到ioc容器中package springboot.configure;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import spr...原创 2020-03-22 01:02:11 · 255 阅读 · 0 评论 -
@schedule 中 cron 的 0 */1 * * * ? 和 0 0/1 * * * ? 的区别
在使用springboot中,经常会看到@schedule的使用,用于定时刷库或者删除数据我的jdk版本是1.8,通过测试发现这两个表达式 0 */1 * * * ? 和 0 0/1 * * * ? 是没有区别的,他们的效果是一样的都是表示每隔1分钟执行一次。看了下源码,发现 setNumberHits的方法,在分钟部分的时候调用this.setNumberHits...原创 2019-12-12 14:00:32 · 67486 阅读 · 0 评论 -
springmvc的学习
1、mvc 框架要做哪些事情: a) 将url映射到java类或java类的方法。 b) 封装用户提交的数据。 c) 处理请求,调用相关的业务封装响应的数据。 d) 将响应数据进行渲染,jsp,html等界面显示。 以下的内容是观看尚硅谷佟刚老师的视频,所做的笔记。 2、配置使用delete请求和put请求...2018-02-23 08:53:55 · 392 阅读 · 0 评论 -
java动态代理和aop的对应关系
昨天介绍了下httpclient,其中涉及到aop的使用,其实aop的底层是用java动态代理实现的。动态代理其实就是用java.lang.reflect.InvocationHandler和java.lang.reflect.Proxy进行操做,这个使用也是比较简单的,记得一年前我刚开始学Java的时候,这个是我最难理解的。其实动态代理是在运行时创建代理对象,从而在实际调用方法(通过反射...原创 2018-11-21 17:02:42 · 2013 阅读 · 3 评论 -
springboot-AOP的介绍
上一节中,因为反欺诈软件接口是通过aop的形式引入的,所以接下来介绍下aop的实现。其实再springboot中的实现aop是很简单的,仅仅需要知道几个注解就可以了。 准备工作:首先要引入springboot的基础包和aop对应的包。如下: <dependencies> <!-- 引入springboot的基础配置,这里的容器使用underto...原创 2018-11-29 23:50:32 · 1012 阅读 · 0 评论 -
spring helloworld
之前学过一点spring,然后就直接用springboot进行项目的开发了,现在打算再熟悉一下。我用的是idea开发工具进行spring的演示,首先要下载相应的五个jar包:commons-logging-1.1.3.jarspring-beans-4.0.4.RELEASE.jarspring-context-4.0.4.RELEASE.jarspring-core-4.0.4.R...原创 2018-12-20 23:25:39 · 131 阅读 · 0 评论 -
spring注入方式
spring的注入方式分为两种:设值注入和构造注入,不管是哪种方式都是为了注入依赖对象的。设值注入方式比较常用。所谓的设值注入是指通过类中的setxxx方法来注入,这种方式简单直观。 <bean class="cn.itouchtv.Person" id="person" > <property name="age" value="10">&l...原创 2018-12-22 17:15:33 · 342 阅读 · 0 评论