宜立方商城开发总结--1

 

  1. 商城系统架构

 2.工程搭建使用Maven

Maven的常见打包方式:jar、war、pom

Pom工程一般都是父工程,管理jar包的版本、maven插件的版本、统一的依赖管理。聚合工程。

war是管理web页面

e3-parent:父工程,打包方式pom,管理jar包的版本号。 项目中所有工程都应该继承父工程。

    |--e3-common:通用的工具类通用的pojo。打包方式jar

    |--e3-manager:服务层工程。聚合工程。Pom工程

                   |--e3-manager-dao:打包方式jar

                   |--e3-manager-pojo:打包方式jar

                   |--e3-manager-interface:打包方式jar

                   |--e3-manager-service:打包方式:jar

                   |--e3-manager-web:表现层工程。打包方式war

开发环境:

Eclipse Version: Oxygen.3a Release (4.7.3a)

JDK1.8

3.后台系统:整合SSM框架

3.1 dao层:Mybatis整合

配置sqlMapConfig.xml:不需要配置什么,但要有文件头。

配置spring:applicationContext.xml:由spring创建数据库连接池,spring管理SqlSessionFactory、mapper代理对象

<!-- 数据库连接池 -->

      <!-- 加载配置文件 -->

      <context:property-placeholder location="classpath:conf/db.properties" />//conf/db.properties放连接数据库 的四个参数

      <!-- 数据库连接池 -->

      <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"

            destroy-method="close">

            <property name="url" value="${jdbc.url}" />

            <property name="username" value="${jdbc.username}" />

            <property name="password" value="${jdbc.password}" />

            <property name="driverClassName" value="${jdbc.driver}" />

            <property name="maxActive" value="10" />

            <property name="minIdle" value="5" />

      </bean>

      <!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包中的 -->

      <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

            <!-- 数据库连接池 -->

            <property name="dataSource" ref="dataSource" />

            <!-- 加载mybatis的全局配置文件 -->

            <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" />

      </bean>

<!-- 扫描mapper-->

      <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

            <property name="basePackage" value="cn.e3mall.mapper" />

      </bean>

3.2 service层

applicationContext-service.xml  <context:component-scan base-package="cn.e3mall.service"/>//扫描注入这个包即子孙包的类

applicationContext-trans.xml  事务管理器(需要数据源datasource),AOP事务

所有的service实现类都放到spring容器中管理。并由spring管理事务。

3.3 web层

springmvc.xml:管理controller,Springmvc的三大组件。

扫描controller:<context:component-scan base-package="cn.e3mall.controller" />

配置返回String的url前后缀

<bean

            class="org.springframework.web.servlet.view.InternalResourceViewResolver">

            <property name="prefix" value="/WEB-INF/jsp/" />

            <property name="suffix" value=".jsp" />

      </bean>

3.4 web.xml

配置spring容器(spring 监听器)随着项目启动

<context-param>

            <param-name>contextConfigLocation</param-name>

            <param-value>classpath:spring/applicationContext*.xml</param-value>

      </context-param>

      <listener>

            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

      </listener>

解决post提交乱码

<filter>

            <filter-name>CharacterEncodingFilter</filter-name>

            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

            <init-param>

                  <param-name>encoding</param-name>

                  <param-value>utf-8</param-value>

            </init-param>

      </filter>

      <filter-mapping>

            <filter-name>CharacterEncodingFilter</filter-name>

            <url-pattern>/*</url-pattern>

      </filter-mapping>

配置前端控制器

<servlet>

            <servlet-name>e3-manager</servlet-name>

            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

            <!-- contextConfigLocation不是必须的, 如果不配置contextConfigLocation, springmvc的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml" -->

            <init-param>

                  <param-name>contextConfigLocation</param-name>

                  <param-value>classpath:spring/springmvc.xml</param-value>

            </init-param>

            <load-on-startup>1</load-on-startup>

      </servlet>

      <servlet-mapping>

            <servlet-name>e3-manager</servlet-name>

            <url-pattern>/</url-pattern>

      </servlet-mapping>

4.mapper绑定异常

此异常的原因是由于mapper接口编译后在同一个目录下没有找到mapper映射文件而出现的。由于maven工程在默认情况下src/main/java目录下的mapper文件是不发布到target目录下

解决这个异常只需要在e3-manager-dao工程的pom文件中添加如下内容: