SpringMVC个人笔记
来源:互联网 发布:男士去角质 知乎 编辑:程序博客网 时间:2024/06/06 00:02
在很多配置中一般都会吧Spring-business.xml和Spring-MVC.xml进行分开配置,这种配置就行各施其职一样,显得特别清晰。
在Spring-MVC.xml中只对@Controller进行扫描就可,作为一个控制器,其他的事情不做。
在Spring-business.xml中再通过<import resource="classpath:business-userInfo.xml" />方式引入其它配置文件进一步对配置文件进行业务细分。
二、读取外部属性文件配置数据源--定义一个事务管理Bean
<bean id="txManager">
--定义一个事务通知,指定遇到哪些方法采取哪些事务管理策略
<tx:advice>
--定义一个切入点
<aop:pointcut>
--将切入点和事务通知集合
<aop:advisor>
实例:
<tx:advice id="txadvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" rollback-for="Exception" />
<tx:method name="modify*" propagation="REQUIRED" rollback-for="Exception" />
<tx:method name="del*" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="*" propagation="REQUIRED" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="daoMethod" expression="execution(* com.dao.*.*(..))"/>
<aop:advisor pointcut-ref="daoMethod" advice-ref="txadvice"/>
</aop:config>
说明:
expression="execution(* com.dao.*.*(..))"
其中第一个*代表返回值,第二*代表dao下的所有类,第三个*代表类里面的所有方法,“(..)”代表方法参数。
总结:
编程式事务是不推荐的,即使有很少事务操作,Spring发展到现在,没有理由使用编程式事务,只有在为了深入理解Spring事务管理才需要学习编程式事务使用。
推荐使用声明式事务,而且强烈推荐使用<tx:tags>方式的声明式事务,因为其是无侵入代码的,可以配置模板化的事务属性并运用到多个项目中。
而@Transaction注解事务,不过如果一个项目模块太多,service方法太多导致每个方法都要手动去加注解,是不是很麻烦,也容易出错。如果一个项目结构清晰,分层明确,那么标签形式的配置将是最直观和方便的办法。
总之,能保证项目正常工作的事务配置就是最好的。
spring 的事务传播这边就不提了,各种可百度到。但在用REQUIRES_NEW的时候,发现没有起作用。
正常情况下:A(B) B为required——new时,b事务失败会影响a事务,a事务失败不会影响b事务。
分析了一下,原因是A方法(有事务)调用B方法(要独立新事务),如果两个方法写在同一个类里,spring的事务会只处理同一个。
解决方案1:需要将两个方法分别写在不同的类里。
解决方案2:方法写在同一个类里,但调用B方法的时候,将service自己注入自己,用这个注入对象来调用B方法。
六、常见困扰:
1、SpringMVC控制器的配置和请求的拦截
△URL-Pattern 的三种配置方式
1、完全路径匹配 以/开始 不能包含通配符* 例如:/hello /init
2、目录匹配 以/开始 , /*结尾 例如: /* /aa/* /aaa/bbb/*
3、扩展名匹配 不能以/开始 ,以*开始 例如: *.do *.action
△/和/*区别- 严格匹配优于带*的匹配
- 最长pattern优于其他pattern
- 路径匹配优于文件类型匹配
问题:springMVC如何拒绝直接访问jsp?
方法1、配置springMVC拦截器
方法2、配置过滤器
- SpringMVC个人笔记1
- SpringMVC个人笔记
- SpringMVC 常用注解(个人笔记)
- SpringMVC细节 :个人总结
- 个人学习-java-springmvc
- SpringMVC-Mybatis 个人总结
- SpringMVC个人零碎总结
- SpringMVC个人总结
- Springmvc的个人浅见
- SpringMVC个人零碎总结
- SpringMVC个人零碎总结
- springmvc个人小结
- SpringMVC 框架个人总结
- SpringMVC个人总结1
- SpringMVC个人零碎总结
- 个人笔记
- 个人笔记
- 个人笔记
- 谈谈数学模型中的自由度
- PLSQL Developer导入csv文件到oracle
- Android 修改EditText光标的颜色、位置、获取焦点、失去焦点
- Spring学习笔记(一)
- shell脚本之echo(五)
- SpringMVC个人笔记
- 华为oj中级 【中级】单词倒排
- c++ 表达式计算--中缀转后缀再计算
- PHPCMS 二次开发 子站与主站统一数据
- 在chrome中调试异步加载的js文件
- redis javaAPI
- atoi和itoa的实现
- MATLAB resample函数
- socket阻塞与非阻塞,同步与异步