美文网首页
taotao-服务层taotao-rest搭建,表现层taota

taotao-服务层taotao-rest搭建,表现层taota

作者: 小小蒜头 | 来源:发表于2018-12-13 23:14 被阅读24次
    前台系统搭建

    查询商品信息,pc端可以查询,移动端也可以查看商品。展示内容一样,只是展示方式不一样。可以把业务逻辑提取出来,发布服务,供pc、移动端公用。

    好处:
      1、提高代码复用度
      2、可以灵活的进行分布式部署。
      3、系统之间耦合度低
      4、团队之间开发不冲突
    缺点:
      1、需要发布Webservice,系统之间需要远程调用
      2、工作量增加
      3、需要系统之间协作才能完成整个业务流程,系统之间调用变的复杂

    需要创建两个工程
    服务层----taotao-rest没有表现层,只有业务逻辑。需要发布服务。
    表现层----taotao-portal只有表现层,没有业务逻辑,不需要连接数据库。

    表现层和服务层通信,使用Webservice进行通信。Restful形式的Webservice。Webservice实质上就是http传递json或者XML等数据。

    1. 创建工程----服务层taotao-rest

    功能:前台系统服务层,功能是发布服务,便于适配Android,iOS和PC等不同的portal门户

    1.1 使用的技术

    1、Mybatis
    2、Spring
    3、发布服务:cxf、springmvc(二选一,这里选择springmvc)

    1.2 taotao-rest搭建

    参考taotao-manager-web模块的创建。taotao-rest打包方式是war包,继承taotao-parent,在taotao-parent上右键New → Module → Next,如下图1、图2、图3所示

    图1 图2 图3

    1.3 框架整合

    SSM框架的整合。参考taotao-manager的框架整合,直接拷贝里面的配置文件和web.xml放到taotao-rest工程里面。

    框架结构
    1. client.conf文件上传文件需要,文件上传大部分都在后台完成,这个工程主要是前台展示,所以现在用不到,不需要。
    1. resource.properties这个文件需要留着,后面配置一些参数之类的
    2. applicationContext-dao.xml中的MapperScannerConfigurer配置需要注意,此时因为taotao-manager-dao被打成jar包,就可以直接在pom.xml文件中添加依赖
    3. applicationContext-service.xml中的com.taotao.service包没有,需要新建,这里更名为com.taotao.rest.service
    4. applicationContext-trans.xml中的pointcut包名也更为com.taotao.rest.service
    5. springmvc.xml中的包扫描器更为com.taotao.rest.controller;静态资源映射不需要,因为没有静态资源;多媒体文件解析器也不需要,不需要上传图片;视图解析器也没必要

    taotao-rest的pom文件:添加spring的依赖、配置tomcat插件

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <parent>
            <artifactId>taotao-parent</artifactId>
            <groupId>com.taotao</groupId>
            <version>1.0-SNAPSHOT</version>
            <relativePath>../taotao-parent/pom.xml</relativePath>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>taotao-rest</artifactId>
        <packaging>war</packaging>
    
        <name>taotao-rest Maven Webapp</name>
        <!-- FIXME change it to the project's website -->
        <url>http://www.example.com</url>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.source>1.7</maven.compiler.source>
            <maven.compiler.target>1.7</maven.compiler.target>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.11</version>
                <scope>test</scope>
            </dependency>
    
            <!-- 添加数据库访问工程依赖 -->
            <dependency>
                <groupId>com.taotao</groupId>
                <artifactId>taotao-manager-dao</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
            <!-- Spring -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
            </dependency>
            <!-- JSP相关 -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jsp-api</artifactId>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    
        <build>
            <finalName>taotao-rest</finalName>
            <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
                <plugins>
                    <plugin>
                        <artifactId>maven-clean-plugin</artifactId>
                        <version>3.0.0</version>
                    </plugin>
                    <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
                    <plugin>
                        <artifactId>maven-resources-plugin</artifactId>
                        <version>3.0.2</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.7.0</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.20.1</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>3.2.0</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-install-plugin</artifactId>
                        <version>2.5.2</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-deploy-plugin</artifactId>
                        <version>2.8.2</version>
                    </plugin>
                    <!-- 配置Tomcat插件 -->
                    <plugin>
                        <groupId>org.apache.tomcat.maven</groupId>
                        <artifactId>tomcat7-maven-plugin</artifactId>
                        <version>2.2</version>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
    
    </project>
    

    2. 创建工程---表现层taotao-portal

    taotao-portal结构

    2.1 使用的技术

    不需要连接数据库,不用mybatis。打包方式是war包,因为用作网站页面展示。

    1、Spring
    2、Springmvc

    2.2 taotao-rest搭建

    搭建方式与taotao-rest一样

    依赖的jar包:
    1、taotao-manager-pojo
    2、Spring
    3、Tomcat插件

    2.3 框架整合

    taotao-portal的pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <parent>
            <artifactId>taotao-parent</artifactId>
            <groupId>com.taotao</groupId>
            <version>1.0-SNAPSHOT</version>
            <relativePath>../taotao-parent/pom.xml</relativePath>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>taotao-portal</artifactId>
        <packaging>war</packaging>
    
        <name>taotao-portal Maven Webapp</name>
        <!-- FIXME change it to the project's website -->
        <url>http://www.example.com</url>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.source>1.7</maven.compiler.source>
            <maven.compiler.target>1.7</maven.compiler.target>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.11</version>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>com.taotao</groupId>
                <artifactId>taotao-manager-pojo</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
    
            <!-- Spring -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
            </dependency>
            <!-- JSP相关 -->
            <dependency>
                <groupId>jstl</groupId>
                <artifactId>jstl</artifactId>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jsp-api</artifactId>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    
        <build>
            <finalName>taotao-portal</finalName>
            <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
                <plugins>
                    <plugin>
                        <artifactId>maven-clean-plugin</artifactId>
                        <version>3.0.0</version>
                    </plugin>
                    <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
                    <plugin>
                        <artifactId>maven-resources-plugin</artifactId>
                        <version>3.0.2</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.7.0</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.20.1</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>3.2.0</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-install-plugin</artifactId>
                        <version>2.5.2</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-deploy-plugin</artifactId>
                        <version>2.8.2</version>
                    </plugin>
                    <!-- 配置Tomcat插件 -->
                    <plugin>
                        <groupId>org.apache.tomcat.maven</groupId>
                        <artifactId>tomcat7-maven-plugin</artifactId>
                        <configuration>
                            <port>8082</port>
                            <path>/</path>
                        </configuration>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
    </project>
    

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
             id="taotao" version="2.5">
      <display-name>taotao-portal</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
      </welcome-file-list>
    
      <!-- log4j配置文件位置 -->
      <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>classpath:properties/log4j.properties</param-value>
      </context-param>
    
      <!-- 利用spring来使用log4j -->
      <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
      </listener>
    
      <!-- 初始化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>
    
    
      <!-- springmvc的前端控制器 -->
      <servlet>
        <servlet-name>taotao-portal</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>taotao-portal</servlet-name>
        <!-- 伪静态化 -->
        <url-pattern>*.html</url-pattern>
      </servlet-mapping>
    </web-app>
    

    2.4 访问首页

    创建一个Controller,当访问http://localhost:8082/跳转到首页
    请求的url:/index

    IndexCOntroller

    package com.taotao.portal.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    /**
     * 首页访问Controller
     * Created by yvettee on 12/15/18.
     */
    @Controller
    public class IndexController {
    
        @RequestMapping("/index")
        public String showIndex() {
            return "index";
        }
    }
    
    首页访问

    新增 taotao-rest 模块增加或者修改的文件:参考

    新增 taotao-portal 模块增加或者修改的文件(commit message写错了):参考

    上篇:taotao-保存规格参数
    源代码:https://github.com/yvettee36/taotao

    相关文章

      网友评论

          本文标题:taotao-服务层taotao-rest搭建,表现层taota

          本文链接:https://www.haomeiwen.com/subject/hqwkhqtx.html