当前位置: 首页 > news >正文

光做网站推广咋样托管公司是怎么托管的

光做网站推广咋样,托管公司是怎么托管的,开发商逾期交房怎么赔偿,ps软件下载官方网站Transactional注解 Spring使用了TransactionInterceptor拦截器#xff0c;该拦截器主要负责事务的管理#xff0c;包括开启、提交、回滚等操作。当在方法上添加Transactional注解时#xff0c;Spring会在AOP框架中对该方法进行拦截#xff0c;TransactionInterceptor会在该…Transactional注解 Spring使用了TransactionInterceptor拦截器该拦截器主要负责事务的管理包括开启、提交、回滚等操作。当在方法上添加Transactional注解时Spring会在AOP框架中对该方法进行拦截TransactionInterceptor会在该方法执行前后对事务进行切面处理Spring会基于该类生成一个代理对象把这个代理对象作为bean。当调用这个代理对象的方法时如果有事务处理则会先关闭事务的自动功能然后执行方法的具体业务逻辑如果业务逻辑没有异常那么代理逻辑就会直接提交如果出现任何异常那么直接进行回滚操作。 事务管理器 Spring还提供了多种事务管理器包括JDBC事务管理器、Hibernate事务管理器、JTA事务管理器等等可以满足不同数据访问层的需求。事务通知是Spring事务机制中的一个重要组成部分主要用于判断哪些方法需要被事务管理以及如何管理事务。 Spring事务底层实现原理 应用启动时会创建一个代理类把事务逻辑织入到代理类中然后用代理类替代目标类并放入上下文容器中。当实际调用目标类的事务方法时被代理类拦截先执行拦截器中的事务逻辑再执行目标类的业务逻辑最后处理异常回滚和提交。这样就能实现简单、方便、可控的事务管理。 示例代码 这里给出一个简单的示例代码 定义一个接口包含需要进行事务管理的方法 public interface UserService {void addUser(User user);void deleteUser(String id);void updateUser(User user);User getUser(String id); }实现这个接口的目标类 public class UserServiceImpl implements UserService {Overridepublic void addUser(User user) {//添加用户的业务逻辑}Overridepublic void deleteUser(String id) {//删除用户的业务逻辑}Overridepublic void updateUser(User user) {//更新用户的业务逻辑}Overridepublic User getUser(String id) {//查询用户的业务逻辑return null;} }定义一个事务拦截器类 /*** TransactionInterceptor 是一个实现了 MethodInterceptor 接口的拦截器类*/ public class TransactionInterceptor implements MethodInterceptor {/*** TransactionManager 对象用于管理事务*/private TransactionManager txManager;/*** 用于注入 TransactionManager 对象* param txManager TransactionManager 对象*/public void setTxManager(TransactionManager txManager) {this.txManager txManager;}/*** 实现 MethodInterceptor 接口的 invoke 方法用于拦截指定方法* param invocation MethodInvocation 对象用于获取被拦截的方法及其参数* return 执行方法的返回结果* throws Throwable 抛出异常*/Overridepublic Object invoke(MethodInvocation invocation) throws Throwable {Object result;try {// 开启事务txManager.start();// 执行被拦截的方法并获取方法执行的返回结果result invocation.proceed(); // 提交事务txManager.commit();} catch (Exception e) {// 回滚事务txManager.rollback();throw e;}return result;} }定义一个上下文容器类 public class ApplicationContext {private MapString, Object beanMap new HashMap(); // 用于存放bean的map// 注册beanpublic void registerBean(String name, Object bean) {beanMap.put(name, bean); // 将bean存放到map中}// 获取beanpublic Object getBean(String name) {Object bean beanMap.get(name); // 从map中获取beanif (bean instanceof Advised) { // 如果bean是Advised类型说明使用了AOPreturn ((Advised)bean).getTargetSource().getTarget(); // 返回目标对象}return bean; // 返回原始对象} }在应用启动时创建一个代理工厂类使用上述事务拦截器对目标类进行代理 /*** 代理工厂类用于创建代理对象*/ public class ProxyFactory {/*** 创建代理对象* param target 目标对象需要被代理的对象* param interceptor 事务拦截器代理对象需要加入该拦截器* return 返回代理对象*/public static Object createProxy(Object target, TransactionInterceptor interceptor) {DefaultAopProxyFactory proxyFactory new DefaultAopProxyFactory();AdvisedSupport advisedSupport new AdvisedSupport();advisedSupport.setTarget(target); // 设置目标对象advisedSupport.addAdvice(interceptor); // 添加事务拦截器return proxyFactory.createAopProxy(advisedSupport).getProxy(); // 创建代理对象并返回} }然后在应用启动时创建容器并注册代理类 public class Main {public static void main(String[] args) {ApplicationContext context new ApplicationContext();UserService target new UserServiceImpl(); //创建目标类TransactionInterceptor interceptor new TransactionInterceptor();interceptor.setTxManager(new TransactionManager()); //设置事务管理器UserService proxy (UserService) ProxyFactory.createProxy(target, interceptor); //创建代理类context.registerBean(userService, proxy); //注册代理类到上下文容器中//使用代理类进行业务操作User user new User();context.getBean(userService).addUser(user);} }这样当执行代理类的方法时就会先执行事务拦截器中的事务逻辑再执行目标类的业务逻辑。如果出现异常会进行回滚。这样就实现了简单、方便、可控的事务管理。
http://www.hkea.cn/news/14457408/

相关文章:

  • 网页游戏网站电影word里网站的超链接怎么做
  • 外贸网站建设费用wordpress图片表单插件
  • 市局网站建设建议教育网站如何做经营
  • 网站平台开发游戏推广在哪里接活
  • 常州天宁区做网站公司网站做链接的意义是什么意思
  • 服装营销型网站建设手机网站开发按返回弹出提示窗口
  • wordpress建站教程新手使用html制作个人主页
  • 网站建设公司潍坊wordpress文章代码
  • 优秀的网站建设公司排名业务员自己做网站
  • 东莞市住房建设网站百度投放广告流程
  • 做盈利网站怎么备案vue开发视频网站
  • 好的建网站公司开发一平方多少钱
  • 开通公司网站怎么开通网站手机版怎么弄
  • 青岛仿站定制模板建站手机网站分享
  • 购物网站成功案例wordpress主题安装后图片找不到
  • 北京网站设计公司sx成都柚米科技15怎么做qq刷赞网站
  • 济源制作网站杭州计算机培训机构哪个最好
  • 东莞网站优化方式就是做网站的.....
  • 中国网站 服务器做网站数据库
  • 建设网站什么软件好网站建设的特点
  • 做 网络网站子网站建设方案
  • 企业建设网站需要注意什么手续展示设计作品欣赏
  • 中小企业建站合理使用说明
  • 可以注销的网站江西南昌建设厅网站
  • 济南做网站的公司外贸网站vps服务器
  • 西宁建设网站的公司最好的科技网站建设
  • 网站备案人有什么责任intitle 做网站
  • 什么网站可以做设计兼职杭州企业建站程序
  • 浙江网站建设和制作网络营销主要做些什么
  • 一家专门做爆品印刷的网站建网站与发布网站