基于SSM框架疾速搭建maven后盾我的项目

环境筹备

1.IntelliJ IDEA

2.Maven

https://maven.apache.org/

3.MYSQL

https://www.mysql.com/

4.Tomcat

http://tomcat.apache.org/

5.JDk

https://www.oracle.com/java/t...

SSM框架简介

无论你是前端,APP,后端开发工程师,搭建一个本人的后盾对于学习都是很有帮忙的,本文是作者搭建SSM后端环境的记录,浏览完本文你也能够疾速搭建一个属于本人的后端代码。

SSM框架是Spring MVC ,Spring和Mybatis框架的整合,是规范的MVC模式,将整个零碎划分为View层,Controller层,Service层,DAO层四层,应用Spring MVC负责申请的转发和视图治理,Spring实现业务对象治理,Mybatis作为数据对象的长久化引擎。

数据库配置

首先咱们创立一个数据库和表。

创立数据库的SQL

CREATE DATABASE time_manager_app

创立数据表的SQL

DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (  `id` int(8) NOT NULL COMMENT '主键',  `name` varchar(255) COLLATE utf8_bin NOT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

向数据表中插入一条数据

INSERT INTO `user` VALUES ('1', '1');

创立工程

当初咱们关上IDEA创立咱们的maven工程

File->New->Project

抉择maven,选中红框中的选项,点击Next

红框中的两个选项轻易输出,点击Next

红框中抉择本地装置的maven软件的地位,点击Next

点击finish

当初咱们的maven工程就创立好了

接下来咱们要创立一些工程须要的文件夹

右键抉择SRC->NEW->Directory

创立好的文件目录如下

右键JAVA将它设置为Source Root

右键resource将它设置为Resources Root

工程创立结束,接下来咱们编写咱们须要的配置文件

配置文件编写

首先咱们在POM.XML中增加咱们须要的依赖包

留神,复制时从备注里的copy开始,复制到copy完结,不要整个文件复制

<?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.ssmtest</groupId>    <artifactId>ssmtest</artifactId>    <version>1.0-SNAPSHOT</version>      <!--从这里开始copy -->    <!-- 用来设置版本号 -->    <properties>        <spring.version>4.2.4.RELEASE</spring.version>        <mybatis.version>3.2.8</mybatis.version>        <slf4j.version>1.7.12</slf4j.version>        <log4j.version>1.2.17</log4j.version>        <druid.version>1.0.9</druid.version>    </properties>      <!-- 用到的jar包 -->    <dependencies>        <!-- 单元测试 -->        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.11</version>            <!-- 示意开发的时候引入,公布的时候不会加载此包 -->            <scope>test</scope>        </dependency>        <dependency>            <groupId>org.aspectj</groupId>            <artifactId>aspectjweaver</artifactId>            <version>1.6.8</version>        </dependency>        <!-- spring框架包 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-test</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-core</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-oxm</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-tx</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-jdbc</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-aop</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context-support</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-expression</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-orm</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-web</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-webmvc</artifactId>            <version>${spring.version}</version>        </dependency>        <!-- spring框架包 -->        <!-- mybatis框架包 -->        <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis</artifactId>            <version>${mybatis.version}</version>        </dependency>        <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis-spring</artifactId>            <version>1.2.2</version>        </dependency>        <!-- mybatis框架包 -->        <!-- 数据库驱动 -->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <version>5.1.35</version>        </dependency>        <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->        <dependency>            <groupId>commons-dbcp</groupId>            <artifactId>commons-dbcp</artifactId>            <version>1.4</version>        </dependency>        <!-- jstl标签类 -->        <dependency>            <groupId>jstl</groupId>            <artifactId>jstl</artifactId>            <version>1.2</version>        </dependency>        <!-- log -->        <dependency>            <groupId>log4j</groupId>            <artifactId>log4j</artifactId>            <version>${log4j.version}</version>        </dependency>        <dependency>            <groupId>org.slf4j</groupId>            <artifactId>slf4j-api</artifactId>            <version>${slf4j.version}</version>        </dependency>        <dependency>            <groupId>org.slf4j</groupId>            <artifactId>slf4j-log4j12</artifactId>            <version>${slf4j.version}</version>        </dependency>        <!-- 连接池 -->        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid</artifactId>            <version>${druid.version}</version>        </dependency>        <!--退出对json转换-->        <!-- JSON: jackson -->        <dependency>            <groupId>com.fasterxml.jackson.core</groupId>            <artifactId>jackson-annotations</artifactId>            <version>2.5.0</version>        </dependency>        <dependency>            <groupId>com.fasterxml.jackson.core</groupId>            <artifactId>jackson-core</artifactId>            <version>2.5.0</version>        </dependency>        <dependency>            <groupId>com.fasterxml.jackson.core</groupId>            <artifactId>jackson-databind</artifactId>            <version>2.5.0</version>        </dependency>        <dependency>            <groupId>com.fasterxml.jackson.jr</groupId>            <artifactId>jackson-jr-all</artifactId>            <version>2.5.0</version>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>fastjson</artifactId>            <version>1.2.46</version>        </dependency>        <dependency>            <groupId>c3p0</groupId>            <artifactId>c3p0</artifactId>            <version>0.9.1.2</version>            <type>jar</type>            <scope>compile</scope>        </dependency>    </dependencies>    <build>        <finalName>jackwu</finalName>        <!-- java编译插件,如果maven的设置里配置好jdk版本就不必 -->        <plugins>            <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>        <!--打包配置文件-->        <resources>            <resource>                <directory>src\main\resources</directory>                <includes>                    <include>**/*.properties</include>                    <include>**/*.xml</include>                    <include>**/*.tld</include>                </includes>                <filtering>false</filtering>            </resource>            <resource>                <directory>src\main\java</directory>                <excludes>                    <exclude>**/*.java</exclude>                </excludes>            </resource>        </resources>    </build>    <!--copy在这里完结 --></project>

PS:如果你的网络环境不好,Maven下载依赖包须要一段时间,不要焦急,持续接下来的配置就能够了

接下来咱们在WEB-INF目录下创立web.xml

web.xml内容如下,整个copy就能够

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xmlns="http://xmlns.jcp.org/xml/ns/javaee"         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"         version="3.1">    <!-- 配置加载类门路的配置文件 -->    <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath*:applicationContext.xml</param-value>    </context-param>    <!-- 配置监听器 -->    <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>    <listener>        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>    </listener>    <!-- 解决中文乱码过滤器 -->    <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>    <!-- 前端控制器(加载classpath:springmvc.xml 服务器启动创立servlet) -->    <servlet>        <servlet-name>dispatcherServlet</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <!-- 配置初始化参数,创立完DispatcherServlet对象,加载springmvc.xml配置文件 -->        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath:spring-mvc.xml</param-value>        </init-param>        <!-- 服务器启动的时候,让DispatcherServlet对象创立 -->        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>dispatcherServlet</servlet-name>        <url-pattern>*.do</url-pattern>    </servlet-mapping>    <welcome-file-list>        <welcome-file>index.html</welcome-file>        <welcome-file>index.htm</welcome-file>        <welcome-file>index.jsp</welcome-file>        <welcome-file>default.html</welcome-file>        <welcome-file>default.htm</welcome-file>        <welcome-file>default.jsp</welcome-file>    </welcome-file-list></web-app>

接着咱们在resources文件夹下创立applicationContext.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:tx="http://www.springframework.org/schema/tx"       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/tx    http://www.springframework.org/schema/tx/spring-tx.xsd">    <!-- 开启注解扫描,治理service和dao -->    <context:component-scan base-package="service">    </context:component-scan>    <context:component-scan base-package="dao">    </context:component-scan>    <context:property-placeholder location="classpath:db.properties"/>    <!-- 配置连接池 -->    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">        <property name="driverClass" value="${jdbc.driver}"/>        <property name="jdbcUrl" value="${jdbc.url}"/>        <property name="user" value="${jdbc.username}"/>        <property name="password" value="${jdbc.password}"/>    </bean>    <!-- 把交给IOC治理 SqlSessionFactory -->    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <property name="dataSource" ref="dataSource"/>    </bean>    <!-- 扫描dao接口 -->    <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">        <property name="basePackage" value="dao"/>    </bean>    <!-- 配置Spring的申明式事务管理 -->    <!-- 配置事务管理器 -->    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property name="dataSource" ref="dataSource"/>    </bean>    <tx:annotation-driven transaction-manager="transactionManager"/></beans>

接着咱们在resource文件夹下创立spring-mvc.xml

同样内容整个复制

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:mvc="http://www.springframework.org/schema/mvc"       xmlns:context="http://www.springframework.org/schema/context"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:aop="http://www.springframework.org/schema/aop"       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.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           ">    <!-- 扫描controller的注解,别的不扫描 -->    <context:component-scan base-package="controller">    </context:component-scan>    <!-- 配置视图解析器 -->    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <!-- JSP文件所在的目录 -->        <property name="prefix" value="/pages/" />        <!-- 文件的后缀名 -->        <property name="suffix" value=".jsp" />    </bean>    <!-- 开启对SpringMVC注解的反对 -->    <mvc:annotation-driven />    <!--        反对AOP的注解反对,AOP底层应用代理技术        JDK动静代理,要求必须有接口        cglib代理,生成子类对象,proxy-target-class="true" 默认应用cglib的形式    -->    <!--        反对AOP的注解反对,AOP底层应用代理技术        JDK动静代理,要求必须有接口        cglib代理,生成子类对象,proxy-target-class="true" 默认应用cglib的形式    -->    <aop:aspectj-autoproxy proxy-target-class="true"/>    <!-- 输入对象转JSON反对 -->    <bean            class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">        <property name="messageConverters">            <list>                <bean                        class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">                    <property name="supportedMediaTypes">                        <list>                            <value>text/html;charset=UTF-8</value>                            <value>text/plain;charset=UTF-8</value>                            <value>application/json;charset=UTF-8</value>                        </list>                    </property>                </bean>            </list>        </property>    </bean></beans>

接着咱们在resource文件夹下创立db.properties

同样内容整个复制

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/time_manager_app?characterEncoding=utf-8jdbc.username=rootjdbc.password=root

当初咱们的工程文件构造是这样的

接下来咱们要编写咱们的java代码

Java代码编写

首先咱们创立几个须要的文件夹

接着咱们在相应的文件夹下创立咱们的java文件

文件构造如下

每个文件下的代码如下

UserController

package controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import service.UserService;@Controller@RequestMapping("/user")public class UserController {    @Autowired    private UserService userService;    @RequestMapping("/find.do")    @ResponseBody    public Object findAll(){        Object a = userService.findAll();        System.out.println(a);        return  a;    }}

UserDao

package dao;import org.apache.ibatis.annotations.Select;import pojo.User;import java.util.List;public interface UserDao {    @Select("select * from user")    public List<User> findAll();}

User

package pojo;public class User {    private int id;    private String name;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}

UserServiceImpl

package service.impl;import dao.UserDao;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import pojo.User;import service.UserService;import java.util.List;@Service@Transactionalpublic class UserServiceImpl implements UserService {    @Autowired    private UserDao userDao;    public List<User> findAll(){        return  userDao.findAll();    }}

UserService

package service;import pojo.User;import java.util.List;public interface UserService {    public List<User> findAll();}

到这里代码应该是没有谬误的.如果有谬误,可能是依赖包没有下载好,期待一下

接下来咱们配置tomcat

配置tomcat

点击idea右上角的地位,接着点击edit

按程序点击红色框的地位

在红框处抉择tomcat版本

接着配置咱们的war包,点击红色框处

抉择第二个

清空application context中的内容,点击apply

NO NO NO配置两头咱们呈现了一个问题

应该把resource文件夹更名为resources Sorry

正确的工程门路如下

启动程序

接下来咱们要启动咱们的程序,测试是否配置胜利

按程序点击红框处

期待打包胜利,会呈现target文件夹,控制台log如下

接着点击绿色箭头,启动程序

测试

关上咱们的浏览器,输出http://localhost:8080/user/find.do

Amazing数据库中的一条数据曾经胜利返回了,到此咱们的SSM工程配置胜利。

代码仓库地位

如果你感觉配置太麻烦,你也能够在github上下载作者配置好的我的项目

我的项目地址https://github.com/jack0-0wu/...

后续还会创作几篇如何疾速应用此我的项目欠缺后盾逻辑,欢送关注

欢送关注微信公众号,文章会首发在微信公众号。
能够搜寻公众号名 ‘’杰克的程序人生‘’

师者,所以传道授业解惑也,教师节高兴