老师我搞不懂这里

老师我搞不懂这里

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd">
    <import resource="spring-dao.xml"></import>
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <bean id="orderServiceTarget" class="com.mason.os.service.impl.OrderServiceImpl"></bean>
    <!--直接配置增强对象 用TransactionProxyFactoryBean-->
    <bean id="orderService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <!--设置事务管理器-->
        <property name="transactionManager" ref="transactionManager"></property>
        <!--配置事务属性-->
        <property name="transactionAttributes">
            <props>
                <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
                <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
                <prop key="search*">PROPAGATION_REQUIRED,readOnly</prop>
                <prop key="*">PROPAGATION_REQUIRED</prop>
            </props>
        </property>
        <!--配置目标类-->
        <property name="target" ref="orderServiceTarget"></property>
    </bean>
    

</beans>

http://img1.sycdn.imooc.com//climg/5d3808dc00012ffb07930127.jpg

这里的key

get* find* search* 还有最后一个 *

都是指什么?

如果是指方法名的话,哪里有这些方法?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好!

  1. tx里面配置的是方法的事务,后面的*是通配符,意思是凡是方法名以get或者find和search开头的都支持当前事务,如果当前没有事务,就新建一个事务。最后一个*表示所有,老师这里并没有将所有的方法都写全,只是做了一个演示呢

    http://img1.sycdn.imooc.com//climg/5d3813670001b08110970190.jpg

  2. 这里是配置哪些类要添加切面(配置事是通过包名.类名的方式,*表示所有)

    http://img1.sycdn.imooc.com//climg/5d3813bc0001ec4f14780093.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


  • MasonM 提问者 #1
    老师你的意思是: addOrder方法是被最后一个<tx:method name="*">所增强的吗?
    2019-07-24 16:24:44
  • 好帮手慕柯南 回复 提问者 MasonM #2
    是的,同学可以自己测试一下。祝学习愉快~
    2019-07-24 17:36:47
提问者 MasonM 2019-07-24 15:36:19

http://img1.sycdn.imooc.com//climg/5d380a420001001115790513.jpg

这个也是一样,我也搞不懂,在

package com.mason.os.service.impl;

import com.mason.os.dao.OrderDao;
import com.mason.os.dao.ProductDao;
import com.mason.os.entity.Order;
import com.mason.os.entity.Product;
import com.mason.os.service.OrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;

import java.util.Date;

@Service
public class OrderServiceImpl implements OrderService {
    @Autowired
    private OrderDao orderDao;
    @Autowired
    private ProductDao productDao;


    public void addOrder(Order order) {
        order.setCreateTime(new Date());
        order.setStatus("待付款");


        orderDao.insert(order);
        Product product = productDao.select(order.getProductsId());
        product.setStock(product.getStock() - order.getNumber());
        productDao.update(product);

    }
}

中根本就没有以那些开头的方法呀

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师