其实现在搭建springboot+ssm项目是非常简单的,springboot本身就是快速构建工程的框架,因此其实构建一个项目是非常快速的。
现在主流的编译器就是eclipse和idea,我这里使用的是eclipse,环境是jdk1.8,maven是3.3.9。
直接右键new一个maven project即可。
quickstart项目就行了
src/main/java目录是存放java代码的
src/main/resources目录是存放配置文件的
如果没有resources目录可以在main下面自己new一个文件夹,然后maven-update即可。
因为现在的主流基本上都是前后端分离的项目,所以我在这里使用的是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>
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
根据自己的需求适当调整。
controller存放控制器类
dao存放数据库操作类
pojo存放实体类
service存放业务逻辑类
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("启动成功");
}
}
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();
}
}
在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>
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保持一致。
在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(信息)
在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();
}
}
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);
}
}
启动app.java类
postman或者浏览器直接访问
localhost:9999/test1/info/getAll
成功!
这个时候你可以添加条件进行测试
感谢各位的支持,需要源码的可进行下载,对小编小小的支持,谢谢!
https://download.csdn.net/download/qidada_cq/12518534