尚筹网-1.后台环境搭建

1. 后台单一架构介绍

1.1 概念

  • 整个项目都封装到一个war包在一个Tomcat上运行,这就是单一架构模式。也叫“单机版”、“all in one”。
  • 优点:结构简单,不涉及模块之间调用。易于开发和部署。
  • 缺点:不能容纳规模庞大、访问量高的项目。

1.2 工程之间的关系

1.3 创建Maven工程即Maven Module

1.4 工程创建清单

父工程坐标

  • groupid:com.rgh.crowd.funding
  • artifactid:atcrowdfunding-admin-0-parent
  • packaging:pom

WebUI工程

  • Module Name:atcrowdfunding-admin-1-webui
  • 注意:打包方式选择war

组件工程

  • Module Name:atcrowdfunding-admin-2-component

通用工程

  • Module Name:atcrowdfunding-admin-3-common

实体类工程

  • Module Name:atcrowdfunding-admin-4-entity

1.5 建立工程之间的依赖关系

  1. WebUI依赖Component

    
    
        
            atcrowdfunding-admin-0-parent
            com.rgh.crowd.funding
            1.0-SNAPSHOT
        
        4.0.0
    
        atcrowdfunding-admin-1-webui
        war
    
        
            
                com.rgh.crowd.funding
                atcrowdfunding-admin-2-component
                1.0-SNAPSHOT
            
    
  2. Component依赖Common

    
    
        
            atcrowdfunding-admin-0-parent
            com.rgh.crowd.funding
            1.0-SNAPSHOT
        
        4.0.0
    
        atcrowdfunding-admin-2-component
    
        
            
                com.rgh.crowd.funding
                atcrowdfunding-admin-3-common
                1.0-SNAPSHOT
            
    
  3. Common依赖Entity

    
    
        
            atcrowdfunding-admin-0-parent
            com.rgh.crowd.funding
            1.0-SNAPSHOT
        
        4.0.0
    
        atcrowdfunding-admin-3-common
    
        
            
                com.rgh.crowd.funding
                atcrowdfunding-admin-4-entity
                1.0-SNAPSHOT
            
        
    
    
    

1.6 父工程管理依赖



    4.0.0
    com.rgh.crowd.funding
    atcrowdfunding-admin-0-parent
    pom
    1.0-SNAPSHOT
    
        atcrowdfunding-admin-1-webui
        atcrowdfunding-admin-2-component
        atcrowdfunding-admin-3-common
        atcrowdfunding-admin-4-entity
    

    
        5.0.2.RELEASE
    

    
        
            
            
            
                org.springframework
                spring-orm
                ${atguigu.spring.version}
            
            
            
                org.springframework
                spring-webmvc
                ${atguigu.spring.version}
            
            
                org.springframework
                spring-test
                ${atguigu.spring.version}
            
            
            
                org.aspectj
                aspectjweaver
                1.9.2
            
            
            
                cglib
                cglib
                2.2
            
            
            
            
                mysql
                mysql-connector-Java
                5.1.3
            
            
            
                com.alibaba
                druid
                1.0.31
            
            
            
                org.mybatis
                mybatis
                3.2.8
            
            
            
                org.mybatis
                mybatis-spring
                1.2.2
            
            
            
                com.github.pagehelper
                pagehelper
                4.0.0
            
            
            
                log4j
                log4j
                1.2.17
            
            
                org.slf4j
                slf4j-api
                1.7.7
            
            
                org.slf4j
                slf4j-log4j12
                1.7.7
            
            
            
                org.codehaus.jackson
                jackson-mapper-asl
                1.9.2
            
            
            
                jstl
                jstl
                1.2
            
            
            
                junit
                junit
                4.12
                test
            
            
            
                javax.servlet
                servlet-api
                2.5
                provided
            
            
            
                javax.servlet.jsp
                jsp-api
                2.1.3-b06
                provided
            
        
    

创建数据库和数据库表

创建数据库

CREATE DATABASE `atcrowdfunding190105` CHARACTER SET utf8

创建管理员数据库表

drop table if exists t_admin;
create table t_admin
(
   id                   int not null auto_increment,
   login_acct            varchar(255) not null,
   user_pswd             char(32) not null,
   user_name             varchar(255) not null,
   email                varchar(255) not null,
   create_time           char(19),
   primary key (id)
);

2. 基于Maven的逆向工程

2.1 创建Maven工程

  • 建议逆向工程从项目本身独立出来。
  • group id:com.rgh.crowd.funding
  • artifact id:atcrowdfunding-reverse
  • package:jar

2.2 pom配置



    4.0.0

    com.rgh.crowd.funding
    atcrowdfunding-reverse
    1.0-SNAPSHOT

    
    
        
            org.mybatis
            mybatis
            3.2.8
        
    

    
    

        
        

            
            
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.0

                
                

                    
                    
                        org.mybatis.generator
                        mybatis-generator-core
                        1.3.2
                    

                    
                    
                        com.mchange
                        c3p0
                        0.9.2
                    

                    
                    
                        mysql
                        mysql-connector-java
                        5.1.8
                    
                
            
        
    


2.3 generatorConfig.xml





    
        
            
            
        

        
        
        

        
        
            
        

        
        
            
            
            
            
        

        
        
            
            
        

        
        
            
            
        

        
        

2.4 执行逆向生成操作的Maven命令

2.5 逆向工程生成的资源各归各位

逆向工程目录

项目工程目录

WebUI工程将来在Tomcat上运行时,现在resources目录下的资源会直接放在WEB-INF/classes目录(也就是类路径)下,所以放在resources目录下运行的时候更容易找到。

3. 业务逻辑层

3.1 创建包

  • com.rgh.crowd.funding.service
  • com.rgh.crowd.funding.service.api
  • com.rgh.crowd.funding.service.impl

3.2 在Component工程加入依赖



    org.mybatis
    mybatis





    org.springframework
    spring-orm



    org.springframework
    spring-webmvc



    org.aspectj
    aspectjweaver



    cglib
    cglib


    mysql
    mysql-connector-Java



    com.alibaba
    druid



    org.mybatis
    mybatis



    org.mybatis
    mybatis-spring



    com.github.pagehelper
    pagehelper



    log4j
    log4j


    org.slf4j
    slf4j-api


    org.slf4j
    slf4j-log4j12



    org.codehaus.jackson
    jackson-mapper-asl

4. SSM整合总体思路

5. Spring和MyBatis整合

5.1 创建Spring配置文件

  • spring-persist-mybatis.xml
  • spring-persist-tx.xml
  • spring-web-mvc.xml

5.2 创建jdbc.properties

jdbc.user=root
jdbc.password=360
jdbc.url=jdbc:mysql://localhost:3306/atcrowdfunding190105
jdbc.driver=com.mysql.jdbc.Driver

5.3 创建log4j.properties

log4j.rootLogger=DEBUG,myConsole
log4j.appender.myConsole=org.apache.log4j.ConsoleAppender
log4j.appender.myConsole.Target=System.out
log4j.appender.myConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.myConsole.layout.ConversionPattern=%p [%C{1}:%L] %m%n

5.4 配置数据源

所在配置文件spring-persist-mybatis.xml



    
    

    
    
        
        
        
        
    

5.5 测试类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring-persist-mybatis.xml","classpath:spring-persist-tx.xml"})
public class CrowdFundingTest {
    @Autowired
    private DataSource dataSource;
    @Test
    public void testConnection() throws SQLException {
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
    }
}

所需依赖webui-pom.xml


    org.springframework
    spring-test
    test


    junit
    junit
    test

5.6 创建MyBatis全局配置文件

mybatis-config.xml





5.7 配置SqlSessionFactoryBean

所在的配置文件:spring-persist-mybatis.xml




    
    

    
    

    
    




    
    

5.8 测试整合效果

CrowdFundingTest.java

@Autowired
private AdminService adminService;

@Test
public void testMybatis() {
    List adminList = adminService.getAll();
    for (Admin admin : adminList) {
        System.out.println(admin);
    }
}

spring-persist-mybatis.xml中配置扫描服务层



6. 配置声明式事务

所在配置文件:spring-persist-tx.xml




    
    
        
    

    
    
        
        
            
            
            
            
            

            
            
            
            
            
            

        
    

    
    

        
        

        
        
    

    
    


7. 加入Spring MVC

7.1 配置spring-web-mvc.xml




    
    

    
    

    
    
        
        
    


7.2 配置web.xml




    
    
        contextConfigLocation
        classpath:spring-persist-*.xml
    

    
    
        org.springframework.web.context.ContextLoaderListener
    

    
    
        springDispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:spring-web-mvc.xml
        
        1
    

    
    
        springDispatcherServlet
        *.html
        *.json
    

    
        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
        
            forceRequestEncoding
            true
        
        
            forceResponseEncoding
            true
        
    
    
        CharacterEncodingFilter
        /*
    


7.3 伪静态【了解】

DispatcherServlet映射*.html扩展名,那么所有以html结尾的请求都由SpringMVC处理。反之,请求地址没有以html结尾,不会由SpringMVC处理。

这样就可以把一个本来是动态处理的请求看起来像是请求了一个HTML页面。

好处1:增加黑客入侵的难度。

好处2:有利于SEO优化。

注意:如果实质上返回的响应数据是JSON格式,那么Tomcat将认为这个响应数据和请求扩展名“html”不匹配,然后给出415错误。针对这种情况,需要另外再映射*.json扩展名。

7.4 创建Controller类测试

@Controller
public class AdminHandler {

    @Autowired
    private AdminService adminService;

    @RequestMapping("/admin/get/all")
    public String getAll(Model model){
        List list = adminService.getAll();
        model.addAttribute("list",list);
        return "admin-target";
    }

}

目标页面jsp

7.5 在 atcrowdfunding-admin-1-webui的pom.xml加入依赖


    javax.servlet
    servlet-api
    provided


    javax.servlet.jsp
    jsp-api
    provided


    jstl
    jstl

admin-target.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>


    
        
        Insert title here
    
    

        
            
                ${admin }

你可能感兴趣的:(尚筹网-1.后台环境搭建)