
Spring
文章平均质量分 65
tan06
这个作者很懒,什么都没留下…
展开
-
SpringBoot读写分离与事务dynamic-datasource
因为在Spring管理下, 获取到数据库连接后, 会和当前线程进行绑定, 如果后面的方法被判断为不需要新建连接, 则复用之前与线程绑定的连接, 那么即使有。可以发现框架是通过维护一个栈结构进行对应数据源的切换, 类似方法的栈, 因为方法间可能嵌套调用, 所以使用此结构便于管理。注解即可切换数据源,在被DS注解标记的方法上, 会被此拦截器拦截, 获取到注解上定义的值, 并存入栈结构中。该方法也会进行事务管理, 但功能比较简陋。贴心的是, 框架还与Seata进行了整合。的功能: 解决多数据源的事务问题.原创 2020-04-13 21:46:16 · 1131 阅读 · 1 评论 -
SpringBoot @DS注解 和 DynamicDataSource自定义实现多数据源的2种方式
最后,通过自定义注解@DataSource(value = DataSourceType.ORACLE)来标记需要切换数据源的方法或类,利用AOP切面编程,在方法执行前根据注解值设置当前线程的数据源类型,从而实现动态数据源切换的功能。在实际的项目中,会遇到需要操作多个数据源的情况,SpringBoot为我们提供了多种实现多数据源的方式。数据源切换: 在需要访问数据库的地方,根据路由策略选择合适的数据源,并将该数据源设置为当前线程的数据源上下文中,以确保后续的数据库操作都使用选定的数据源。原创 2018-12-06 11:08:05 · 661 阅读 · 1 评论 -
Spring事件传播行为和隔离级别
spring特有的事务传播行为,spring支持7种事务传播行为,确定客户端和被调用端的事务边界(说得通俗一点就是多个具有事务控制的service的相互调用时所形成的复杂的事务边界控制)下图所示为7钟事务传播机制 传播行为 含义 PROPAGATION_REQUIRED(XML文件中为REQUIRED) 表示当前方法必须在一...原创 2018-11-14 11:56:54 · 1630 阅读 · 0 评论 -
Spring邮件服务(java邮件)
1、发送邮件配置文件springmail_config.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta...原创 2013-07-30 11:27:38 · 417 阅读 · 1 评论 -
Spring使用注解/XML方式实现AOP
Spring对AOP的实现提供了很好的支持。下面我们就使用Spring的注解来完成AOP做一个例子。首先,为了使用Spring的AOP注解功能,必须导入如下几个包。aspectjrt.jar,aspectjweaver.jar,cglib-nodep.jar.1、实体beanpublic class Person { private Long id; private Strin...原创 2018-11-14 11:56:35 · 302 阅读 · 1 评论 -
Spring @Configuration用annotation装配spring
下面是一个典型的Spring配置文件(application-config.xml)<beans> <bean id="orderService" class="com.acme.OrderService"/> <constructor-arg ref="orderRepository"/> ..原创 2018-11-13 13:56:01 · 148 阅读 · 0 评论 -
Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
Spring容器中的Bean是有生命周期,Spring 允许 Bean 在初始化完成后以及销毁前执行特定的操作。下面是常用的三种指定特定操作的方法:通过实现InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法; 通过<bean> 元素的 init-method/destroy-method属性指定初始化之后 /销毁之前调用的操作...原创 2018-11-13 13:55:29 · 392 阅读 · 0 评论 -
spring方法拦截器 MethodInterceptor 配置
使用到spring方法拦截器 MethodInterceptor实现权限控制,MethodInterceptor可以使用通配符,并且是基于注解的。简单例子代码如下:1、定义需要拦截的类 public class LoginAction{ //没有权限限制 @RequestMapping(value = "/login") public vo...原创 2018-11-13 13:54:37 · 7292 阅读 · 0 评论 -
Spring上下文刷新事件contextrefreshedevent
在开发时有时候需要在整个应用开始运行时执行一些特定代码,比如初始化环境,准备测试数据、加载一些数据到内存等等。在Spring中可以通过ApplicationListener来实现相关的功能,加载完成后触发contextrefreshedevent事件(上下文件刷新事件) <bean id="testContextRefreshedEvent" class="com.s...原创 2018-11-13 13:55:49 · 1762 阅读 · 0 评论