springmvc框架详解
来源:互联网 发布:海森梅尔几线牌子 知乎 编辑:程序博客网 时间:2024/06/05 08:48
1:SSM框架相关依赖
<!--使用junit的jar包用来测试--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency><!-- 日志 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency><!--数据库相关依赖 --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.35</version> <scope>runtime</scope> </dependency><!--数据库使用c3p0连接池 --> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency><!--DAO框架:MyBatis依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version> </dependency><!--myBatis自身实现的spring整合依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.3</version> </dependency><!--Servlet web相关依赖--> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.4</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency><!--4:spring依赖--> <!--spring核心依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.1.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.1.7.RELEASE</version> </dependency> <!--spring dao层依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.1.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.1.7.RELEASE</version> </dependency> <!--spring web相关依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.1.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.1.7.RELEASE</version> </dependency> <!--spring test相关依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.1.7.RELEASE</version> </dependency> <!--引入一些工具类--> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2</version> </dependency>dao层接口的设计、mybatis实现数据库连接以及mybatis和spring的结合,dao层采用接口设计方式实现,接口和sql实现的分离、方便维护。dao层所负责仅仅是接口的实现和设计,而负责逻辑即一个或者多个dao层接口的拼接在service中实现。
2:mybatis的配置
创建mybatis-config.xml 全局配置:(若是需要就可以添加)
<settings> <!--使用jdbc的getGeneratedKeys 获取数据库的自增主键值--> <setting name="useGeneratedKeys" value="true"/> <!--数据库中使用别名替换列名 默认true 例select name as title from table --> <setting name="useColumnLabel" value="true"/> <!--开启驼峰命名转换--> <setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 开启延迟加载 --><setting name="lazyLoadingEnabled" value="true" /><!-- 按需延迟加载 --><setting name="aggressiveLazyLoading" value="false" /> </settings>3:创建jdbc.properties文件:数据库配置文件和连接数据库驱动。
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/seckill?useUnicode=true&characterEncoding=utf8username=rootpassword=1234:mybatis和spring 整合
<!--配置整合mybatis过程--> <!--1.配置数据库相关参数--> <context:property-placeholder location="classpath:jdbc.properties"/> 另一个方法: <!--使用spring自带的占位符替换功能 --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/> <property name="ignoreResourceNotFound" value="true"/> <property name="locations"> <list> <value>classpath:jdbc.properties</value> </list> </property> </bean> <!--2.配置连接池属性--> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/seckill"/> <property name="username" value="root"/> <property name="password" value="123"/> </bean> <!--3.配置SqlSessionFactory对象--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!--注入数据库连接池--> <property name="dataSource" ref="dataSource"/> <!--配置mybatis全局配置文件:mybatis-config.xml--> <property name="configLocation" value="classpath:mybatis-config.xml"/> <!--扫描entity包,使用别名,多个用;隔开--> <property name="typeAliasesPackage" value="org.forezp.entity"/> <!--扫描sql配置文件:mapper需要的xml文件--> <property name="mapperLocations" value="classpath:mapper/*.xml"/> </bean> <!--4:配置扫描Dao接口包,动态实现DAO接口,注入到spring容器--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--注入SqlSessionFactory--> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <!-- 给出需要扫描的Dao接口mapper,其中value是位置--> <property name="basePackage" value="org.forezp.dao"/> </bean>就这样mybatis和spring就整合好了,spring 提供了的ioc容器,为我们管理bean,我们不需要管理bean的生命周期。接下来主要讲述service层的实现、和spring的整合和声明
spring托管service、spring ioc使用对象工程模式,对所有的注入依赖进行管理。当我们需要某个对象的时候,直接从spring ioc中取出,更重要的是spring自动组装依赖,比如从最终的controller依赖service,而service依赖dao,dao依赖SessionFactory,而SessionFactory依赖datasource,这些依赖通通通过spring管理并层层组装。
spring声明事务:一般使用事物需要开启事物/经常一些列的操作,提交或者回滚。spring声明式事物,就是将事物的开启、提交等托管给spring管理,我们只需要注重如何修改数据
创建sping-service.xml
<!--扫描service包下所有使用注解的类型--> <context:component-scan base-package="org.forezp.service"/> <!--配置事务管理器--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!--注入数据库连接池--> <property name="dataSource" ref="dataSource"/> </bean><!--配置基于注解的声明式事务默认使用注解来管理事务行为--> <tx:annotation-driven transaction-manager="transactionManager"/>假如不使用默认的可以进行自定义事务策略如下配置:<!-- 定义事务策略 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="query*" read-only="true" /><tx:method name="find*" read-only="true" /><tx:method name="get*" read-only="true" /><tx:method name="save*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="delete*" propagation="REQUIRED" /><tx:method name="*" /></tx:attributes></tx:advice><!--定义好的策略应用到切入点 --><aop:config><aop:pointcut id="myPointcut"expression="execution(* com.educate.service.*.*(..))" /><aop:advisor advice-ref="txAdvice" pointcut-ref="myPointcut" /></aop:config>
阅读全文
0 0
- Spring框架:SpringMVC详解
- springmvc框架详解
- SpringMVC框架搭建详解
- SpringMVC框架搭建及详解
- mybats +springmvc +spring4 框架整合详解
- SpringMVC + security模块 框架整合详解
- springmvc+mybatis框架搭建流程详解
- springMVC+hibernate+springdata+querydsl框架构建详解
- JavaWeb配置详解(结合框架SpringMVC)
- SpringMVC + security模块 框架整合详解
- SpringMVC + security模块 框架整合详解
- 1. SpringMVC框架之 配置详解
- SpringMVC框架
- SpringMVC框架
- SpringMVC框架
- SpringMVC框架
- SpringMVC框架
- springMVC框架
- activity生命周期
- bzoj 1030: [JSOI2007]文本生成器
- ORACLE in与exists语句的区别
- EL表达式的用法(二)--执行运算
- 导出jsp为excel
- springmvc框架详解
- 禁止Html5在手机上屏幕页面缩放
- PAT 1018锤子剪刀布
- tcpdump抓包工具各参数详解
- URLEncode与URLDecode
- Day30-Redis&Jedis
- SM4密码算法(附源码)
- 抽象方法声明位置
- C语言简单知识点总结