首页 > 其他分享 >1.搭建环境

1.搭建环境

时间:2023-06-22 11:33:06浏览次数:42  
标签:web spring 环境 springframework 模块 org com 搭建

尚好房:搭建环境

一、项目介绍

1、介绍

尚好房是一个二手房管理服务平台,开放优质资源和线上能力,聚合线上线下二手房产资源,打造一个全方位二手房服务生态市场,为消费者提供优质房产服务资源。

2、核心技术

基础框架:ssm
分布式框架:ssm + Dubbo + zk
spring session redis 实现 session 共享
图片服务器:七牛云
后台管理权限控制:spring-security
前端用户登录判断:拦截器
后台管理模板:Thymeleaf
前端技术:Vue+Axios

3、项目模块

最终分布式架构模块

shf-parent:根目录,管理子模块:

​ common-util:公共类模块

​ model:实体类模块

​ service:dubbo 服务父节点

​ service-acl:权限服务模块

​ service-house:房源服务模块

​ service-user:用户服务模块

​ service-api:dubbo 服务 api 接口

​ web:前端(dubbo 服务消费者)

​ web-admin:后台管理系统

​ web-front:网站前端

模块调用关系,如图:

images/1.搭建环境/image-20220214132059749

4、项目演示地址

尚好房后台管理系统:http://139.198.152.148:8001/
尚好房前端:http://139.198.152.148:8002/

根据演示了解项目业务

5、数据库

数据库从资源文件中获取,导入数据库,数据库表如下:

image-20220215092734848

6、其他资源

如:实体类、工具类直接复制到项目模块使用,后续使用时再详细说明,其他资源需要时引入。

二、搭建环境

目前我们先搭建“尚好房”后台管理系统,该系统为单体架构:SSM 框架,后续我们通过 SSM 架构过渡到 Dubbo 通信的分布式架构。

SSM 单体架构模块:

shf-parent:根目录,管理子模块:

​ common-util:公共类模块

​ model:实体类模块

​ web-admin:后台管理系统

搭建 SSM 架构我们分三步进行:

1、搭建项目结构

2、配置依赖关系

3、配置 SSM 环境

4、测试 SSM 环境

1、搭建项目结构

1.1、搭建父工程 shf-parent

shf:尚好房首字母缩写

第一步:新建项目

images/1.搭建环境/image-20220214093951461.png

第二步:

images/images/1.搭建环境/image-20220214095246683

第三步:

images/1.搭建环境/image-20220214095324438

第四步:

images/1.搭建环境/image-20220214095400119

项目结构如:

images/1.搭建环境/image-20220214095609369

删除 src 目录

1.2、搭建工具类模块 common-util

第一步:右键点击“shf-parent”

images/1.搭建环境/image-20220214100002279

第二步:

images/1.搭建环境/image-20220214100028936

第三步:

images/1.搭建环境/image-20220214100054908

第四步:

images/1.搭建环境/image-20220214100115064

项目结构如:

images/1.搭建环境/image-20220214100507264

引入“资料/java 工具类”相关代码

1.3、搭建实体类模块 model

搭建方式如:common-util

项目结构如:

images/1.搭建环境/image-20220214101004534

引入“资料/java 实体类”相关代码

1.4、搭建项目模块 web-admin

第一步:右键点击“shf-parent”

images/1.搭建环境/image-20220214100002279

第二步:

image-20220223151651181

第三步:

image-20220223151717816

第四步:

image-20220223151814916

项目结构如:

image-20220223151955746

说明:模块 web-admin 还缺少 webapp/WEB-INF 目录及 web.xml 文件

第一步:在 pom.xml 文件中指定打包方式为 war

第二步:在 main 下直接创建 webapp/WEB-INF/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"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         id="WebApp_ID" version="3.0">
    <display-name>web</display-name>

</web-app>

2、配置依赖关系

2.1、shf-parent 父模块管理依赖版本

修改 shf-parent 模块 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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.atguigu</groupId>
    <artifactId>shf-parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0</version>
    <modules>
        <module>common-util</module>
        <module>model</module>
        <module>web-admin</module>
    </modules>

    <properties>
        <java.version>1.8</java.version>
        <spring.version>5.2.7.RELEASE</spring.version>
        <thymeleaf.version>3.0.11.RELEASE</thymeleaf.version>
        <pagehelper.version>4.1.4</pagehelper.version>
        <servlet-api.version>2.5</servlet-api.version>
        <fastjson.version>1.2.29</fastjson.version>
        <mybatis.version>3.4.5</mybatis.version>
        <mybatis.spring.version>1.3.1</mybatis.spring.version>
        <mysql.version>8.0.18</mysql.version>
        <druid.version>1.1.12</druid.version>
        <commons-fileupload.version>1.3.1</commons-fileupload.version>
        <slf4j-version>1.7.30</slf4j-version>
        <logback-version>1.2.3</logback-version>
    </properties>

    <!-- 依赖管理 -->
    <dependencyManagement>
        <dependencies>
            <!-- SpringMVC相关 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <!--spring封装的jdbc数据库访问-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <!--Spring提供的对AspectJ框架的整合-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <!--用于spring测试-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <!--用于springMVC模板-->
            <dependency>
                <groupId>org.thymeleaf</groupId>
                <artifactId>thymeleaf-spring5</artifactId>
                <version>${thymeleaf.version}</version>
            </dependency>

            <!--mybatis的分页插件-->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper</artifactId>
                <version>${pagehelper.version}</version>
            </dependency>
            <!-- Mybatis -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>${mybatis.version}</version>
            </dependency>
            <!-- Mybatis与Spring整合所需要的jar包 -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>${mybatis.spring.version}</version>
            </dependency>
            <!-- MySql -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
            </dependency>
            <!-- 连接池 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>${druid.version}</version>
            </dependency>
            <!-- 文件上传组件 -->
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>${commons-fileupload.version}</version>
            </dependency>

            <!-- fastjson -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson.version}</version>
            </dependency>

            <!-- 日志 -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j-version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${logback-version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>${servlet-api.version}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

	<build>
        <plugins>
            <!-- java编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

2.2、common-util 模块

common-util 模块负责:依赖与常用工具类管理

<?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>shf-parent</artifactId>
        <groupId>com.atguigu</groupId>
        <version>1.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>common-util</artifactId>

    <dependencies>
        <!-- SpringMVC相关 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        <!--spring封装的jdbc数据库访问-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
        </dependency>
        <!--Spring提供的对AspectJ框架的整合-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
        </dependency>
        <!--用于spring测试-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </dependency>

        <!--用于springMVC模板-->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring5</artifactId>
        </dependency>

        <!--mybatis的分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
        </dependency>
        <!-- Mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
        </dependency>
        <!-- Mybatis与Spring整合所需要的jar包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
        </dependency>
        <!-- MySql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!-- 连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
        </dependency>
        <!-- 文件上传组件 -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
        </dependency>

        <!-- fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>

        <!-- 日志 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </dependency>
    </dependencies>

</project>

2.3、web-admin 模块

web-admin 模块依赖:common-util 与 model 模块

<?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>shf-parent</artifactId>
        <groupId>com.atguigu</groupId>
        <version>1.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>web-admin</artifactId>
    <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>com.atguigu</groupId>
            <artifactId>common-util</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>com.atguigu</groupId>
            <artifactId>model</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.4.15.v20190215</version>
                <configuration>
                    <!-- 如果检测到项目有更改则自动热部署,每隔n秒扫描一次。默认为0,即不扫描-->
                    <scanIntervalSeconds>10</scanIntervalSeconds>
                    <webAppConfig>
                        <!--指定web项目的根路径,默认为/ -->
                        <contextPath>/</contextPath>
                    </webAppConfig>
                    <httpConnector>
                        <!--端口号,默认 8080-->
                        <port>8000</port>
                    </httpConnector>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

说明:web 容器我们使用 jetty,与 tomcat 一样,jetty 更轻量级。

3、配置 SSM 环境

操作模块:web-admin

上面我们已经添加好项目依赖关系,接下来搭建 ssm 环境

ssm 前端模板我们使用:thymeleaf 模板

3.1、添加日志文件

在 resources 目录添加:

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">

    <!--定义日志文件的存储地址 logs为当前项目的logs目录 还可以设置为../logs -->
    <property name="LOG_HOME" value="logs" />

    <!--控制台日志, 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 日志输出级别 -->
    <root level="DEBUG">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

3.2、SSM 分层

ssm 分为三层:

​ controller、service 与 dao 层

我们为每一层分配添加一个配置文件,方便配置文件管理:

​ spring-mvc.xml

​ spring-service.xml

​ spring-dao.xml

3.3、添加 dao 层配置文件

添加 ibatis 配置文件:

在 resources 目录添加:mybatis-config.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>
	 <!--开启驼峰命名自动映射-->
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>

添加 ibatis 与 spring 集成的配置文件

在 resources/spring 目录添加:spring-dao.xml:

<?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:spring-mybatis="http://mybatis.org/schema/mybatis-spring"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                     http://www.springframework.org/schema/beans/spring-beans.xsd
                     http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd">

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
        <property name="username" value="root" />
        <property name="password" value="root" />
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/db_house?characterEncoding=utf8&amp;serverTimezone=Asia/Shanghai&amp;allowPublicKeyRetrieval=true" />
    </bean>
    <!--spring和mybatis整合的工厂bean-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="typeAliasesPackage" value="com.atguigu.entity"></property>
        <property name="configLocation" value="classpath:mybatis-config.xml" />
        <property name="mapperLocations">
            <array>
                <value>classpath:mapper/*.xml</value>
            </array>
        </property>
    </bean>
    <!--批量扫描接口生成代理对象-->
    <spring-mybatis:scan base-package="com.atguigu.dao"></spring-mybatis:scan>

</beans>

创建 ibatis xml 文件存放文件夹:

在 resources 目录添加:mapper 文件夹

3.4、添加 service 层配置文件

在 resources/spring 目录添加:spring-service.xml:

<?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:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context.xsd
                        http://www.springframework.org/schema/tx
                        http://www.springframework.org/schema/tx/spring-tx.xsd">
    <!-- 扫描service包 -->
    <context:component-scan base-package="com.atguigu.service" ></context:component-scan>

    <!-- 事务管理器  -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager"/>
</beans>

3.5、添加 controller 层配置文件

在 resources/spring 目录添加:spring-mvc.xml:

<?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:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       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/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!--包扫描-->
    <context:component-scan base-package="com.atguigu.controller" />

    <!-- 没有匹配上的url全部按默认方式(就是直接访问)访问,避免拦截静态资源 -->
    <mvc:default-servlet-handler/>
    <!-- 开启mvc注解-->
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="true">
            <!-- 配置Fastjson支持 -->
            <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

    <!--视图解析器-->
    <bean id="templateResolver" class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
        <!--配置前缀-->
        <property name="prefix" value="/WEB-INF/templates/"></property>
        <!--配置后缀-->
        <property name="suffix" value=".html"></property>
        <!--配置编码格式-->
        <property name="characterEncoding" value="UTF-8"></property>
        <!--设置缓存为null-->
        <property name="cacheable" value="false"></property>
        <!--配置模板模式,
        HTML5:表示严格模式
        LEGACYHTML5:表示宽松模式-->
        <property name="templateMode" value="LEGACYHTML5"></property>
    </bean>
    <!--配置spring的视图解析器-->
    <bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
        <!--设置编码格式-->
        <property name="characterEncoding" value="UTF-8"></property>
        <!--设置模板引擎-->
        <property name="templateEngine" ref="templateEngine"/>
    </bean>
    <!--配置模板引擎-->
    <bean id="templateEngine" class="org.thymeleaf.spring5.SpringTemplateEngine">
        <!--引用视图解析器-->
        <property name="templateResolver" ref="templateResolver"></property>
    </bean>
</beans>

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"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         id="WebApp_ID" version="3.0">
  <display-name>web</display-name>

  <!-- 解决post乱码 添加字符编码过滤器 -->
  <filter>
    <filter-name>encode</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>
    <init-param>
      <param-name>forceRequestEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>forceResponseEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encode</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <!-- 配置SpringMVC框架前端控制器 -->
  <servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring/spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <!-- 加载spring容器 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/spring-*.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

</web-app>

4、测试 SSM 环境

我们用户角色为例,获取全部角色数据在页面显示

4.1、添加表

如果已经导入数据库,忽略

CREATE TABLE acl_role (
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色 id',
role_name varchar(20) NOT NULL DEFAULT '' COMMENT '角色名称',
role_code varchar(20) DEFAULT NULL COMMENT '角色编码',
description varchar(255) DEFAULT NULL COMMENT '描述',
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
is_deleted tinyint(3) NOT NULL DEFAULT '0' COMMENT '删除标记(0:不可用 1:可用)',
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='角色';

插入数据:

INSERT INTO acl_role (id,role_name,role_code,description,create_time,update_time,is_deleted) VALUES (1,'系统管理员','SYSTEM','系统管理员','2021-05-31 18:09:18','2022-01-20 20:37:52',0),(2,'权限浏览','','权限浏览','2021-06-01 08:38:40','2022-01-20 20:40:09',0),(3,'权限编辑',NULL,'权限编辑','2021-06-18 17:12:21','2022-01-20 20:40:27',0),(4,'房源浏览',NULL,'房源浏览','2021-09-27 09:37:13','2022-01-21 15:34:38',0),(5,'房源编辑',NULL,'房源编辑','2022-01-10 21:57:32','2022-01-21 15:40:45',0);

4.2、添加实体

在 model 模块添加实体

构建 model 模块是直接引入全部实体类,引入了忽略

package com.atguigu.entity;

public class Role extends BaseEntity {

	private static final long serialVersionUID = 1L;

	//角色名称
	private String roleName;
	//角色编码
	private String roleCode;
	//描述
	private String description;

	public void setRoleName(String value) {
		this.roleName = value;
	}

	public String getRoleName() {
		return this.roleName;
	}

	public void setRoleCode(String value) {
		this.roleCode = value;
	}

	public String getRoleCode() {
		return this.roleCode;
	}

	public void setDescription(String value) {
		this.description = value;
	}

	public String getDescription() {
		return this.description;
	}

}

4.4、添加 RoleDao

package com.atguigu.dao;

import com.atguigu.entity.Role;
import java.util.List;

public interface RoleDao {


    List<Role> findAll();

}

4.4、添加 RoleDao.xml 映射文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.atguigu.dao.RoleDao">

    <!-- 用于select查询公用抽取的列 -->
	<sql id="columns">
		select id,role_name,role_code,description,create_time,update_time,is_deleted
	</sql>

    <!--查询所有-->
    <select id="findAll" resultType="role">
        <include refid="column"></include>
        from acl_role
        where is_deleted = 0
    </select>

</mapper>

4.5、添加 service

package com.atguigu.service;


import com.atguigu.entity.Role;

import java.util.List;

public interface RoleService {

    List<Role> findAll();
}

4.6、添加 service 实现

package com.atguigu.service.impl;

import com.atguigu.dao.RoleDao;
import com.atguigu.entity.Role;
import com.atguigu.service.RoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class RoleServiceImpl implements RoleService {

   @Autowired
   private RoleDao roleDao;

   public List<Role> findAll() {
      return roleDao.findAll();
   }
}

4.7、添加 controller

package com.atguigu.controller;

import com.atguigu.entity.Role;
import com.atguigu.service.RoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

@Controller
@RequestMapping(value="/role")
@SuppressWarnings({"unchecked", "rawtypes"})
public class RoleController {

   @Autowired
   private RoleService roleService;


   private final static String PAGE_INDEX = "role/index";


   /**
    * 列表
    * @param model
    * @return
    */
    @RequestMapping
   public String index(ModelMap model) {
      List<Role> list = roleService.findAll();

      model.addAttribute("list", list);
      return PAGE_INDEX;
   }
}

4.8、添加页面

在 WEB-INFE 下创建模板总的文件夹:templates

在 templates 下创建角色文件夹:role

在 role 文件夹下创建文件:index.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
  <head>
    <meta charset="UTF-8" />
    <title>Title</title>
  </head>
  <body>
    <table>
      <tr th:each="item,it : ${list}">
        <td class="text-center" th:text="${it.count}">11</td>
        <td th:text="${item.roleName}">22</td>
        <td th:text="${item.roleCode}">33</td>
        <td th:text="${item.description}">33</td>
        <td th:text="${#dates.format(item.createTime,'yyyy-MM-dd HH:mm:ss')}">
          33
        </td>
      </tr>
    </table>
  </body>
</html>

4.9、部署 web-admin

第一步:

images/1.搭建环境/image-20220214140822474

第二步:

image-20220223105551923

4.10、访问测试

image-20220214141155750

4.11、汇总

目前 SSM 环境我们已经搭建完成,完成了角色列表的测试,说明 SSM 搭建我们已经顺利完成

标签:web,spring,环境,springframework,模块,org,com,搭建
From: https://www.cnblogs.com/NorthPoet/p/17497621.html

相关文章

  • Spartacus Storefront 里如何在 SmartEdit 访问环境下暂时禁用 Early login
    关于SpartacusEarlylogin的功能,即如果当前客户没有登录,则显示loginpage.而不是显示原始页面。有的客户期望Spartacus在SmartEdit环境下预览时,暂时禁掉这个功能。首先,开发人员应该分析与需求相关的所有后果并对安全威胁进行建模,然后考虑是否接受它们,例如:某些功能页......
  • 手把手教你在Windows下搭建Vue开发环境
    一、下载Note.js下载地址:https://nodejs.org/zh-cn/download 二、点击安装包无脑下一步即可(建议修改下路径)三、在选择的安装路径下创建两个文件夹node_cache和node_global 四、打开CMD,设置缓存路径和全局模块存放路径4.1 缓存路径npmconfigsetcache"D:\So......
  • 虚拟机(linux)环境搭建
    软件安装准备1搜索VMware并下载2.以管理员身份启动,正常安装。注意安装完选择许可证,密钥使用:JU090-6039P-08409-8J0QH-2YR7F即可3.使用此网址:Indexof/ubuntu-releases/16.04/(zju.edu.cn)。下载desktop-iso版本软件使用4.新建自定义虚拟机,注意linux系统,处理器配置选为2,2......
  • Java环境的搭建
    首先我们应该对JDK,JRE,JVM有所认知,下面这个图就可以清晰的表述他们的关系:JDK,JRE,JVM的关系一个更复杂的图:这是J2SE1.5 具体功能图表,在图的左边,我们可以清晰的看出哪些是JVM的范畴,哪些是JRE的范畴,哪些是JDK的范畴。Java程序的执行逻辑下面图演示的是如何打造一个个性化的......
  • Ubuntu 下 Tomcat 的搭建
    请首先确认JDK安装成功。环境变量都设置正确! 1、下载最新版本Tomcat下载地址:http://tomcat.apache.org/download-60.cgi 我下载的是稳定版本:http://apache.freelamp.com//tomcat/tomcat-6/v6.0.29/bin/apache-tomcat-6.0.29.tar.gz 2、解压缩$sudotarzxvfapache-to......
  • Ubuntu 下 JDK 的搭建
    1、下载最新版本的JDK,我是从http://www.oracle.com/technetwork/java/javase/downloads/index.html下载的,这里网速真慢。我下载的是:JavaSEDevelopmentKit6u21 jdk-6u21-linux-i586.bin 这个文件。 2、解压缩在命令行下打开其所在文件夹,打chmodu+x./jdk-6u21-linux......
  • 腾讯云COS搭建个人视频点播服务
    随着个人视频文件越来越大,上传到云盘的话,下载太慢了,在线观看又非常慢,于是本文将介绍您使用腾讯云COS做视频点播服务:1、开通COS服务 2、创建COS存储桶 3、设置COS权限关于COS权限方面,如果是自己使用,建议私有读写,防止地址泄露后,文件被读产生流量费用及文件隐私泄露。 ......
  • 如何在 conda 环境中使用 pip 进行安装?
    有时候Conda中没有某个模块,但是pip中有,这时候就需要用到这里的技巧了。在conda环境中使用pip进行安装可以通过以下步骤完成:1、激活你的conda环境打开终端(命令提示符)并输入以下命令:condaactivate<环境名称>将<环境名称>替换为你要激活的conda环境的名称。2、安装pip(......
  • Mac 如何找到PATH环境变量设置在哪里了?
    1、判断是否在PATH中设置了某个目录?打开一个新的终端窗口,然后使用以下命令来验证PATH变量中是否有?echo$PATH2、常见的配置文件在macOS中,PATH环境变量通常是在Shell配置文件中设置的。常见的Shell配置文件有.bash_profile、.bashrc、.zshrc、.profile等。进入你的用......
  • 搭建一个自用的端到端加密服务器 - 以 Matrix-Conduit 为后端
    Conduit是一个用Rust编写的、支持基础的Matrix协议的服务器后端。不建议用在生产环境中,因为功能真的很少,只支持基础的加密聊天、语音视频、文件分享,文档又少。如果买了小内存机、想弄一个自用的端到端加密聊天服务器的可以试试。注意:它要求glibc版本在2.29以上,所以至......