SpringMvc容易忘记的东西(仅仅适合自己无参考意义)
来源:互联网 发布:淘宝定制产品 编辑:程序博客网 时间:2024/05/23 01:43
- 一.一、二级缓存
1.mybatis一级缓存是一个sqlsession级别,二级缓存是跨sqlsession,是一个mapper级别的缓存,对于mapper级别的缓存不同的sqlSession是可以共享的。
2.mybatis支持一级缓存不需要配置。当执行,修改添加删除的sql时就会自动清空一级缓存sqlsession(防止查出的数据不准确,脏数据),再次查询相同的东西时需要再次访问数据库。对于二级缓存此时会刷新
3.spring和mybatis整合后进行mapper开发,不支持一级缓存,mybatis和spring整合,spring按照mapper的模版去生成mapper代理对象,模版在最后统一关闭一级缓存。
4.开启二级缓存:
需要实现序列化接口,否则抛异常
sqlMapconfig.xml
<settings> <setting name="cacheEnabled" value="true"></settings>xxxmap.xml<cache/>查询步骤:二级缓存->一级缓存->数据库查找对于变化频率较高的sql我们需要禁用二级缓存方法:<select id="" resultMap="" useCache="false">useCache默认为true刷新缓存<updata id="" parameterType="" resultType="" flushCache="true">默认为true所以可以不用配置
springMvc整合(java工程)
dao的impl去extend这个SeqSessionDaoSupport类
1.sqlMapConfig.xml
别名,settings,加载javabean的mapxml
2.applicationContext.xml
数据源连接池,sqlSessionFactory,mapper,dao
<typeAliases>#在configration中不在mapper标签中 <package name=""/></typeAliases><mapper> <package name=""/></mapper>
加载数据源配置文件
<context:property-placeholder location="classpath:db.properties"/><bean id="dataSource" class="" destory-method="close"> <property name="url" value="${}"/></bean>
配置sqlSessionFactory,需要数据源和mybatis的配置文件
<bean id="sqlSessionFactory" class="....sqlSessionFactoryBean"> <property name="datasource" ref="dataSource"> <property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml"/></bean>
配置dao
<bean id="dao接口名" class="dao实现类的全类名"> <property name="sqlSessionFactory" ref="sqlSessionFactory"></bean>
配置mapper MapperFactoryBean生成动态代理对象(不用这个)
<bean id="" class="....MapperFactoryBean"> <property name="mapperInterfaceBean" value="xxxmap.xml的包名"/> <property name="sqlSessionFactory" ref="sqlSessionFactory"></bean>
扫描器(没有ID) 上面那个就不用
<bean class="..MapperSacnerConfig"> <property name="basePackage" value="map的包路径,第二个包,第三个包"/> <property name="sqlSession"</bean>
正式配置
web.xml:前端控制器:<servlet> <servlet-name>springMVC</servlet-name> <servlet-class>...DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value>这个文件在源码文件夹的根部 </init-param></servlet><servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>*.action</url-pattern></servlet-mapping>spring容器监听器的配置<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/.../applicationContext-xxx.xml或者是....-*.xml通配符方式</param-value></context-param><listener> <listener-class>...contextLoaderListener</listener-class></listener>
springmvc.xml
1.handler<bean name="/xxx.action" class="ItemContriller"></bean>2.处理器映射器<bean class="BeanNameUrlHandlerMapping" />根据url找handler3.处理器适配器<bean class="simpleControllerHandlerAdapter"></bean>4.视图解析器<bean class="viewResolver"> <property name="prefic" value="/WEB-INF/jsp"/> <property name="suffix" value=".jsp"/></bean>注解处理器映射器使用@Controller@requestMapping组件扫描controller,service,component,repsitory<context:component-scan base-package=""/>
组合重点
applicationContextDao.xml(数据源,sqlsessionFactory,mapper扫描器)
context:property-placeholder location="classpath:db.properties"/><bean id="dataSource" class="" destory-method="close"> <property name="url" value="${}"/></bean><bean id="sqlSessionFactory" class="....sqlSessionFactoryBean"> <property name="datasource" ref="dataSource"> <property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml"/></bean><bean class="MapperScanerfigurer"> <property name="basepackage" value="xxmap.xml的包名"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/></bean>
applicationContextService.xml
<bean id="" class="service全类名">
springmvc.xml
controller扫描器
mvc注解驱动(可以替代下面处理器映射器和适配器)
注解的映射器
注解的适配器
试图解析器
sqlMapConfig.xml
<typeAliases> <package name=""/></typeAliases>
applicationContext-transation.xml
使用声明的事务控制可以有效地规范代码
事务管理器(用jdbc的事务管理器)
<bean id="transaction" class="datasourceTransactionmanage"> <property name="datasource" ref="datasource"></bean>
通知(对于save,insert..开头的方法增加事务required,其他的查询不进行事务管理用supports和read-only=true表示只读)
<tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*" propagation="required"/> <tx:method name="insert*" propagation="required"/> <tx:method name="updata*" propagation="required"/> <tx:method name="delete*" propagation="required"/> <tx:method name="select*" propagation="supports" read-only=true/> <tx:method name="select" propagation="supports" read-only=true/> </tx:attributes></tx:advice><aop:config> <aop:advisor advice-ref="txAdvice" pointcut="execution(* cn.itcast.service.impl.*.*(..))"/>impl下的任一方法,不管返回值是什么</aop:config>
@RequestMapping(value="/...",method=RequestMethod.GET)也可是一个数组method={RequestMethod.GET,RequestMethod.POSt}
redirect重定向的方式返回
方法的返回值为”redirect:url路径.action”
- SpringMvc容易忘记的东西(仅仅适合自己无参考意义)
- mybatis自己容易忘记的东西1(仅适自己)
- mybatis自己容易忘记的东西2(仅适自己)
- sql 语句 容易忘记的一些东西
- 容易忘记的,自己看的
- 基础,自己又容易忘记的,计算机基础知识
- vim中自己容易忘记的命令
- 写博客记住自己忘记的东西
- R本月小总结,容易忘记的东西
- C++中那些容易忘记或混淆的东西--指针
- 【情怀记录贴】:记录容易忘记的东西
- iOS自己写的一些容易忘记的小知识
- 对自己有用的东西,不一定对别人适合。
- 细小语法(我容易忘记的)
- 容易忘记的常识
- 容易忘记的学习心得
- 容易忘记的css
- 容易忘记的命令
- 8
- python-day01
- Kotlin开发环境的配置
- 编程之美-链表专题
- css3中文参考手册在线浏览
- SpringMvc容易忘记的东西(仅仅适合自己无参考意义)
- Python:scikit-learn机器学习库
- Mapreduce工作原理
- Shiro教程(十)Shiro 权限动态加载与配置精细讲解
- TCP三次握手 概括
- BackTrack5 学习笔记4 WEB 应用指纹
- spring源码(12)加载指定bean前,先加载依赖的bean
- 用一个例子详解主题敏感(topic-sensitive)pagerank算法流程
- Java iOS Android 三个平台实现加解