springboot+ssm搭建详细过程

springboot+ssm搭建详细教程

  • 前言
    • 1.创建项目
      • 项目结构
    • 2.编写pom.xml文件
    • 3.配置文件
    • 4.创建目录
    • 5.编写启动类
    • 6.新建数据库
    • 7.编写实体类
    • 8.编写InfoMapper.java文件
    • 9.编写InfoMapper.xml文件
    • 10.编写InfoMapper.java
    • 11.编写InfoService类
    • 12.编写InfoServiceImpl类
    • 13.编写infoController类
    • 14.启动

前言

其实现在搭建springboot+ssm项目是非常简单的,springboot本身就是快速构建工程的框架,因此其实构建一个项目是非常快速的。

1.创建项目

现在主流的编译器就是eclipse和idea,我这里使用的是eclipse,环境是jdk1.8,maven是3.3.9。
springboot+ssm搭建详细过程_第1张图片
直接右键new一个maven project即可。
springboot+ssm搭建详细过程_第2张图片
quickstart项目就行了
springboot+ssm搭建详细过程_第3张图片

项目结构

springboot+ssm搭建详细过程_第4张图片
src/main/java目录是存放java代码的
src/main/resources目录是存放配置文件的
如果没有resources目录可以在main下面自己new一个文件夹,然后maven-update即可。

2.编写pom.xml文件

因为现在的主流基本上都是前后端分离的项目,所以我在这里使用的是rest风格的方式编写的项目,下面是我自己的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>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.1.RELEASE</version>
		<relativePath />
	</parent>

	<groupId>com.deci</groupId>
	<artifactId>test1</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>
	<name>test1</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
		</dependency>
		<dependency>
			<groupId>commons-httpclient</groupId>
			<artifactId>commons-httpclient</artifactId>
			<version>3.1</version>
		</dependency>
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging-api</artifactId>
			<version>1.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.7</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-collections4</artifactId>
			<version>4.2</version>
		</dependency>
		<dependency>
			<groupId>commons-collections</groupId>
			<artifactId>commons-collections</artifactId>
			<version>3.2.2</version>
		</dependency>
		<dependency>
			<groupId>org.weixin4j.spring.boot</groupId>
			<artifactId>weixin4j-spring-boot-starter</artifactId>
			<version>1.0.0</version>
		</dependency>
		<dependency>
			<groupId>com.auth0</groupId>
			<artifactId>java-jwt</artifactId>
			<version>3.3.0</version>
		</dependency>
		<dependency>
			<groupId>com.aliyun.oss</groupId>
			<artifactId>aliyun-sdk-oss</artifactId>
			<version>2.8.3</version>
		</dependency>
		<dependency>
			<groupId>net.sourceforge.jexcelapi</groupId>
			<artifactId>jxl</artifactId>
			<version>2.6.12</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-undertow</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-aop</artifactId>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>6.0.6</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.1</version>
		</dependency>
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper</artifactId>
			<version>5.0.0</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.0.11</version>
		</dependency>
		<dependency>
			<groupId>org.json</groupId>
			<artifactId>json</artifactId>
		</dependency>
		<dependency>
			<groupId>com.aliyun</groupId>
			<artifactId>aliyun-java-sdk-core</artifactId>
			<version>4.0.6</version>
		</dependency>
		<dependency>
			<groupId>com.aliyun</groupId>
			<artifactId>aliyun-java-sdk-ecs</artifactId>
			<version>4.11.0</version>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.0</version>
		</dependency>
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.3.1</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-log4j</artifactId>
			<version>1.3.5.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-redis</artifactId>
			<version>1.5.1.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<optional>true</optional>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.5.1</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<!-- 没有该配置,devtools 不生效 -->
					<fork>true</fork>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>

3.配置文件

springboot本身的宗旨是0配置文件,但是一些必要的配置还是需要的
在这里插入图片描述
我在resources下放了这两个文件,application.peoperties是springboot的主配置文件,下面那个应该都知道是log4j的日志文件
下面将基本配置贴上来吧。

#mysql数据连接地址
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test1?characterEncoding=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true
#mysql数据用户名
spring.datasource.username=root
#连接密码
spring.datasource.password=123456
#mysql连接驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

#端口号,因为springboot是内置的Tomcat,启动项目其实就相当于是启动了一个Tomcat,所以在这里配置端口号
server.port=9999
#项目访问路径
server.context-path=/test1
#超时时间 单位毫秒
server.session.timeout=1000
#Tomcat编码格式
server.tomcat.uri-encoding=UTF-8
#加载所有的sql文件
mybatis.mapper-locations=classpath:config/*.xml

上述是比较基础的属性,如果需要比较全的可到我的博客资源里面去下载:https://download.csdn.net/download/qidada_cq/12518469

log4j的代码就简单了

log4j.rootLogger=debug, stdout, logfile, socket
log4j.logger.org.apache.axis.ConfigurationException =ERROR
log4j.appender.logfile.encoding=UTF-8
log4j.logger.org.apache.activemq=ERROR
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{MM-dd HH:mm:ss}] %p [%c{1}] - %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=/data/fmcms/fmcms.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.MaxFileSize=5MB
log4j.appender.logfile.MaxBackupIndex=32
log4j.appender.logfile.layout.ConversionPattern=[%d{MM-dd HH:mm:ss}] %p [%c{1}] - %m%n

根据自己的需求适当调整。

4.创建目录

springboot+ssm搭建详细过程_第5张图片
controller存放控制器类
dao存放数据库操作类
pojo存放实体类
service存放业务逻辑类

5.编写启动类

springboot+ssm搭建详细过程_第6张图片
启动类放在com.qidada包下面即可

package com.qidada;

import javax.servlet.MultipartConfigElement;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@SpringBootApplication
@ComponentScan(basePackages = "com.qidada")
@MapperScan(basePackages = "com.qidada.dao")
@EnableTransactionManagement // 事务管理
@EnableCaching // 缓存
public class App {

	public static void main(String[] args) {
		System.setProperty("es.set.netty.runtime.available.processors", "false");
		SpringApplication.run(App.class, args);
		System.out.println("启动成功");
	}

}

6.新建数据库

springboot+ssm搭建详细过程_第7张图片
随手写了一个测试用的info表

7.编写实体类

package com.qidada.pojo;

public class Info {
	private int id;
	private String name;
	private int age;
	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;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String toString() {
		return "Info [id=" + id + ", name=" + name + ", age=" + age + "]";
	}
	public Info() {
		super();
	}
	
}

8.编写InfoMapper.java文件

在dao层下创建接口InfoMapper
springboot+ssm搭建详细过程_第8张图片

9.编写InfoMapper.xml文件

在resources中创建config文件夹并编写InfoMapper.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.qidada.dao.InfoMapper">
	<select id="getAllInfo" parameterType="com.qidada.pojo.Info" resultType="com.qidada.pojo.Info">
		select * from info where 1=1 
		<if test="id != 0">
			and id = #{id}
		</if>
		<if test="name != null and name != ''">
			and name like '%${name}%'
		</if>
		<if test="age != 0">
			and age = #{age}
		</if>
	</select>
</mapper>

springboot+ssm搭建详细过程_第9张图片
简单写了个查询语句

10.编写InfoMapper.java

package com.qidada.dao;

import java.util.List;

import com.qidada.pojo.Info;

public interface InfoMapper {
	List<Info> getAllInfo(Info info);
}

注意:这里的方法名必须与InfoMapper.xml文件中的sql语句的id保持一致。

11.编写InfoService类

在service层创建接口InfoService

package com.qidada.service;

import com.qidada.pojo.Info;
import com.qidada.pojo.ResultVo;

public interface InfoService {
	public ResultVo getAllInfos(Info info);
}

其中ResultVo是我自己编写的一个接口返回规范

package com.qidada.pojo;

import java.io.Serializable;

public class ResultVo implements Serializable{

	
	/**
	 * 
	 */
	private static final long serialVersionUID = 8774291738803727341L;
	
	public static final String STATUS_SUCCESS="1";
	
	public static final String STATUS_FAILURE="0";
	
	private String status;
	
	private Object data;
	
	private String message;

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public Object getData() {
		return data;
	}

	public void setData(Object data) {
		this.data = data;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}
	@Override
	public String toString() {
		return "ResultVo [status=" + status + ", data=" + data + ", message=" + message + "]";
	}
	public static ResultVo buildSuccessResult() {
		return new ResultVo(STATUS_SUCCESS,null,"成功");
	}
    public static ResultVo buildSuccessResult(Object data) {
    	return new ResultVo(STATUS_SUCCESS,data,"成功");
    }
    public static ResultVo buildFailureResult(String message) {
    	return new ResultVo(STATUS_FAILURE,null,message);
    }
    public static ResultVo buildFailureResult(String status,String message) {
    	return new ResultVo(status,null,message);
    }
    public static ResultVo buildFailureResult(String status,Object data,String message) {
    	return new ResultVo(status,data,message);
    }
    public static ResultVo buildDefaultFailureResult() {
    	return new ResultVo(STATUS_FAILURE,null,"操作失败!");
    }
	public ResultVo(String status, Object data, String message) {
		super();
		this.status = status;
		this.data = data;
		this.message = message;
	}

	public ResultVo() {
		super();
	}
}

主要就是status(状态)、data(数据)、message(信息)

12.编写InfoServiceImpl类

在service包下创建impl包,再创建InfoService接口的实现类并实现方法

package com.qidada.service.impl;

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.qidada.dao.InfoMapper;
import com.qidada.pojo.Info;
import com.qidada.pojo.ResultVo;
import com.qidada.service.InfoService;

@Service("infoService")
public class InfoServiceImpl implements InfoService{

	@Autowired
	InfoMapper infoMapper;
	
	private Logger log = LoggerFactory.getLogger(InfoServiceImpl.class);
	
	public ResultVo getAllInfos(Info info) {
		try {
			List<Info> list = infoMapper.getAllInfo(info);
			return ResultVo.buildSuccessResult(list);
		} catch (Exception e) {
			log.error(e.getMessage(),e);
		}
		return ResultVo.buildDefaultFailureResult();
	}

}

13.编写infoController类

package com.qidada.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.qidada.pojo.Info;
import com.qidada.pojo.ResultVo;
import com.qidada.service.InfoService;

@RestController
@RequestMapping("/info")
public class InfoController {

	@Autowired
	InfoService infoService;
	
	@RequestMapping("/getAll")
	public ResultVo getAll(Info info){
		return infoService.getAllInfos(info);
	}
	
}

14.启动

启动app.java类
springboot+ssm搭建详细过程_第10张图片
postman或者浏览器直接访问
localhost:9999/test1/info/getAll
springboot+ssm搭建详细过程_第11张图片
成功!
这个时候你可以添加条件进行测试
springboot+ssm搭建详细过程_第12张图片
感谢各位的支持,需要源码的可进行下载,对小编小小的支持,谢谢!
https://download.csdn.net/download/qidada_cq/12518534

你可能感兴趣的:(java经验,java,spring,boot,项目架构)