• 完成前台门户页面系统功能(十)门户系统的建立以及服务层系统的建立


    1.有关门户页面的效果展示:

    2.有关门户系统的体系架构 :

    优点:

    1、前台系统和服务层可以分开,降低系统的耦合度。

    2、开发团队可以分开,提高开发效率

    3、系统分开可以灵活的进行分布式部署。

    缺点:服务之间通信使用接口通信,开发工作量提高。我们的前台系统分为两部分,一部分是服务层 web 工程,功能就是发布服务另外一部分:表现层,展示页面,没有业务逻辑。所有业务逻辑就是调用服务层的服务。 

     3.构造服务层系统jingxi-rest(也是一个maven项目)打包方式:war

    3.1 SqlMapConfig.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration PUBLIC " -//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <!--配置分页插件-->
        <plugins>
            <plugin interceptor="com.github.pagehelper.PageHelper">
            <!--设置数据库类型Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->
                <property name="dialect" value="mysql"/>
            </plugin>
        </plugins>
    </configuration>

    3.2 db.properties文件

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/jingxi?characterEncoding=utf-8
    jdbc.username=root
    jdbc.password=123456

    3.3 applicationContext-mybatis.xml文件

    (1.配置数据库连接池 2.使用mybatis管理sqlsessionfactory 3.加载mybatis的全局配置文件 4.扫描数据库映射的mapper)

    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-4.0.xsd
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-4.0.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
        http://www.springframework.org/schema/util 
        http://www.springframework.org/schema/util/spring-util-4.0.xsd">
        
        <!--数据库连接池-->
        <!--加载配置文件-->
        <context:property-placeholder location="classpath:resource/*.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>
        
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.jingxi.mapper"/>
        </bean> 
    </beans>

    3.4 applicationContext-mvc.xml文件

    (配置包的扫描器,扫描@controller注解的类)

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/mvc 
            http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context.xsd">
            
        <context:component-scan base-package="com.jingxi.rest.controller"/>
        <mvc:annotation-driven />
        
    </beans>

    3.5 applicationContext-service.xml文件

    (配置事物,配置切面)

    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context-4.0.xsd
            http://www.springframework.org/schema/aop 
            http://www.springframework.org/schema/aop/spring-aop-4.0.xsd 
            http://www.springframework.org/schema/tx 
            http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
            http://www.springframework.org/schema/util 
            http://www.springframework.org/schema/util/spring-util-4.0.xsd">
            
        <context:component-scan base-package="com.jingxi.rest.service"/>
        <!--事务管理器-->
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!--数据源-->
        <property name="dataSource" ref="dataSource"/></bean>
            <!--通知-->
            <tx:advice id="txAdvice" transaction-manager="transactionManager">
            <tx:attributes>
                <!--传播行为-->
                <tx:method name="save*" propagation="REQUIRED"/>
                <tx:method name="insert*" propagation="REQUIRED"/>
                <tx:method name="add*" propagation="REQUIRED"/>
                <tx:method name="create*" propagation="REQUIRED"/>
                <tx:method name="delete*" propagation="REQUIRED"/>
                <tx:method name="update*" propagation="REQUIRED"/>
                <tx:method name="find*" propagation="SUPPORTS" read-only="true"/>
                <tx:method name="select*" propagation="SUPPORTS" read-only="true"/>
                <tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
            </tx:attributes>
            </tx:advice>
            <!--切面-->
            <aop:config>
                <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.jingxi.rest.service.*.*(..))"/>
            </aop:config>
    </bean>

    3.6 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="jingxi" version="2.5">
        <display-name>jingxi-rest</display-name>
        <welcome-file-list>
            <welcome-file>index.html</welcome-file>
        </welcome-file-list>
        <!--加载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>jingxi-backend</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/applicationContext-mvc.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
            </servlet>
                <servlet-mapping>
                    <servlet-name>jingxi-backend</servlet-name>
                    <url-pattern>/rest/*</url-pattern>
                </servlet-mapping>
            </web-app>

    3.7 pom.xml文件

    <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">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.jingxi</groupId>
        <artifactId>jingxi-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
        <groupId>com.jingxi</groupId>
        <artifactId>jingxi-rest</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>war</packaging> 
    
        
        <dependencies>
        <!--依赖jingxi-manager-mapper工程-->
            <dependency>
                <groupId>com.jingxi</groupId>
                <artifactId>jingxi-backend-mapper</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.jingxi</groupId>
                <artifactId>jingxi-common</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.jingxi</groupId>
                <artifactId>jingxi-backend-pojo</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
        <!--MySql -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
        <!--连接池-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
            </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>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>2.4.0</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.4.2</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.4.2</version>
            </dependency>
             <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                
            </dependency>
            </dependencies>
                <build>
                    <plugins>
                    <!--配置Tomcat插件-->
                        <plugin>
                            <groupId>org.apache.tomcat.maven</groupId>
                            <artifactId>tomcat7-maven-plugin</artifactId>
                            <configuration>
                                <port>8082</port>
                                <path>/</path>
                            </configuration>
                        </plugin>
                    </plugins>
                </build>
            </project>

    至此 服务层的jingxi-rest工程完成~

     4. 构造门户页面系统 jingxi-protal ,打包方式 war

    4.1 applicationContext-mvc.xml文件

    <beans xmlns="http://www.springframework.org/schema/beans" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/mvc 
            http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context.xsd">
        
        <!-- 加載配置文件 -->
        <context:property-placeholder location="classpath:resource/*.properties" />
        
        <context:component-scan base-package="com.jingxi.portal.service"/>
        <context:component-scan base-package="com.jingxi.portal.controller"/>
        <mvc:annotation-driven />
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp/"/>
            <property name="suffix" value=".jsp"/>
        </bean>
    </bean>

    4.2 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="jingxi" version="2.5">
         <display-name>jingxi-portal</display-name>
         <welcome-file-list>
             <welcome-file>index.html</welcome-file>
         </welcome-file-list>
         <!--加载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>jingxi-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/applicationContext-mvc.xml</param-value>
                    </init-param>
                    <load-on-startup>1</load-on-startup>
                </servlet>
                <servlet-mapping>
                    <servlet-name>jingxi-portal</servlet-name>
                    <!--搜索引擎优化,伪静态化-->
                    <url-pattern>*.html</url-pattern>
                </servlet-mapping>
                <servlet-mapping>
                    <servlet-name>jingxi-portal</servlet-name>
                    <!--搜索引擎优化,伪静态化-->
                    <url-pattern>*.action</url-pattern>
                </servlet-mapping>
            </web-app>

    4.3 pom.xml文件

    <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">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>com.jingxi</groupId>
            <artifactId>jingxi-parent</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </parent>
            <groupId>com.jingxi</groupId>
            <artifactId>jingxi-portal</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <packaging>war</packaging>
            <dependencies>
                <dependency>
                    <groupId>com.jingxi</groupId>
                    <artifactId>jingxi-common</artifactId>
                    <version>0.0.1-SNAPSHOT</version>
                </dependency>
                <dependency>
                    <groupId>com.jingxi</groupId>
                    <artifactId>jingxi-backend-pojo</artifactId>
                    <version>0.0.1-SNAPSHOT</version>
                </dependency>
                <dependency>
                    <groupId>com.jingxi</groupId>
                    <artifactId>jingxi-backend-mapper</artifactId>
                    <version>0.0.1-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>
                <!--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>
                    <plugins>                
                    <!--配置Tomcat插件-->
                        <plugin>
                            <groupId>org.apache.tomcat.maven</groupId>
                            <artifactId>tomcat7-maven-plugin</artifactId>
                            <configuration>
                                <port>8083</port>
                                <path>/</path>
                            </configuration>
                            </plugin>
                        </plugins>
                    </build>
                </project>

    至此 jingxi-protal项目 完成~

  • 相关阅读:
    第二十一回  基础才是重中之重~网站bin目录下的程序集自动加载
    C# Socket编程(4)初识Socket和数据流
    SQL日期格式转换(备忘)
    C#正则表达式匹配替换字符串
    CSS万能闭合标签(常用)
    JS比较两个时间大小的简洁代码
    List的Sort自定义排序实例
    char(n) varchar(n)的区别
    AJAX小例一枚(仅GET)
    聚合不应出现在 WHERE 子句中,除非该聚合位于 HAVING 子句或选择列表所包含
  • 原文地址:https://www.cnblogs.com/mumudechengzhang/p/7695791.html
Copyright © 2020-2023  润新知