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=123
4: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>





原创粉丝点击