一直用SpringMVC+Spring开发,虽然用了这么久,但对里面繁琐的配置还是很头疼,这种情况改用Springboot,无疑是个很好的选择。废话不多说,直接介绍自己如何使用的,在这之前还是有必要介绍下接下来的这个案例,这是一个入门级的Springboot应用案例,实现访问一个测试接口,获取到数据库中数据。
第一步:首先创建一个简单的MAVEN工程,这里也可以用IDEA上的MAVEN模版(maven-archetype-webapp)。然后就是在pom.xml中引入Springboot相关的依赖,这里先默认继承spring-boot-starter-parent(实际项目往往需要定义自己的)。

<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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.zyk</groupId><artifactId>testSpringboot</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>testSpringboot Maven Webapp</name><url>http://maven.apache.org</url><!--继承默认的spring boot--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><!--项目配置--><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.7</java.version><maven.build.timestamp.format>yyyyMMdd</maven.build.timestamp.format></properties><dependencies><!-- Spring Boot JPA 连接数据库--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--Spring Boot的核心启动器,包含了自动配置、日志和YAML--><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><!--支持全栈式Web开发,包括Tomcat和spring-webmvc--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--使用log4j来进行日志记录--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j</artifactId><version>1.3.8.RELEASE</version></dependency><!--json相关--><dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.4</version><classifier>jdk15</classifier></dependency><!--springboot项目测试相关--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><!--打包成一个可以直接运行的 JAR 文件--><build><finalName>testSpringboot</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

这里使用的是JPA连接数据库,数据库是mySql,数据库配置在application.properties中

#数据库配置
spring.datasource.url=jdbc:mysql://192.168.8.189:3306/test
spring.datasource.username=root
spring.datasource.password=root
server.port=8080
#项目访问路径
server.context-path=/testSpringboot

使用的log4j来记录日志,配置文件为log4j.properties

#-------------------------------------------------------------------
log4j.rootCategory=INFO, A1, Daily
#log4j.logger.com.dayangit=DEBUG
log4j.logger.org.hibernate.hql.internal.ast.HqlSqlWalker=ERROR#-------------------------------------------------------------------
#A1 system output
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%d{HH:mm:ss.SSS}] [%t] %m%n#-------------------------------------------------------------------
# Daily
log4j.appender.Daily.encoding=GBK
log4j.appender.Daily=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Daily.File=/testSpringboot/testSpringboot.log
log4j.appender.Daily.DatePattern='.'yyyy-MM-dd
log4j.appender.Daily.layout=org.apache.log4j.PatternLayout
log4j.appender.Daily.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss.SSS}][%t]%m%n

这里还要说一下spring-boot-maven-plugin,这是为了将整个项目打包成可以直接运行的jar包,既然可以直接运行提供接口,也说明了springboot的另一个特性,内部自带tomcat。
pom.xml完成后,重新加载后就可以了。
第二步:建立需要用到的数据库表,及数据。上面application.properties中已经规定了数据库名,在此基础上新建自己要用到的表及数据。我这里的建表语句是

CREATE TABLE `testspringboot` (`id` VARCHAR(36) NOT NULL,`name` VARCHAR(50) DEFAULT NULL,`text` VARCHAR(2000) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8

插入数据

insert into `testspringboot` (`id`, `name`, `text`) values('id1','zyk','哈哈哈哈哈哈哈哈哈哈');
insert into `testspringboot` (`id`, `name`, `text`) values('id2','yjh','呵呵呵呵呵呵呵呵呵呵呵呵');

到此数据库部分完成。
第三步:建立项目的各个模块,实现相应的逻辑。我这里就用了四个模块:bean,controller,service,dao,还有一个特殊的类SpringBootSampleApplication(名字不固定,但是要包含特定的main方法),

package com.zyk.testSpringboot;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** Created by Administrator on 2017\10\19 0019.*/
@SpringBootApplication
public class SpringBootSampleApplication {public static void main(String[] args) {SpringApplication.run(SpringBootSampleApplication.class, args);}
}

我的理解这个类就是springboot的入口,程序的各个模块需要在这个类的目录结构的下一级,我的目录结构如图:

这里我只创建了一个实体类,对应数据库中的testspringboot表

package com.zyk.testSpringboot.bean;import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;/*** Created by Administrator on 2017\10\19 0019.*/
@Entity
@Table(name="testspringboot")
public class TestSpringboot {@Idprivate String id;private String name;private String text;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getText() {return text;}public void setText(String text) {this.text = text;}
}

需要提一下的这里的注解,@Entity说明这个class是实体类,并且使用默认的orm规则,如果想改变这种默认的orm规则,就要使用@Table来改变class名与数据库中表名的映射规则,@Id 注解可将实体Bean中某个属性定义为主键 ,@Table注解后,想要添加表中不存在字段,就要使用@Transient这个注解。
dao模块我只创建了一个接口:

package com.zyk.testSpringboot.dao;import com.zyk.testSpringboot.bean.TestSpringboot;
import org.springframework.data.repository.CrudRepository;/*** Created by Administrator on 2017\10\19 0019.*/
public interface ShowDaoInterface extends CrudRepository<TestSpringboot,String>{}

这里需要说明的是,通过继承CrudRepository接口后,我们能够直接用springboot已经定义好的一些简单的增删改查方法。
service模块就是一个简单的调用方法,代码如下:

package com.zyk.testSpringboot.service;import com.zyk.testSpringboot.bean.TestSpringboot;
import com.zyk.testSpringboot.dao.ShowDaoInterface;
import org.springframework.stereotype.Service;import javax.annotation.Resource;/*** Created by Administrator on 2017\10\19 0019.*/
@Service
public class ShowService {@Resourceprivate ShowDaoInterface showDaoInterface;public String getDataById(String id) {TestSpringboot  testSpringboot=showDaoInterface.findOne(id);return testSpringboot.getText();}
}

controller模块代码如下:

package com.zyk.testSpringboot.controller;import com.zyk.testSpringboot.service.ShowService;
import net.sf.json.JSONObject;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;
import java.util.Collections;
import java.util.HashMap;/*** Created by Administrator on 2017\10\19 0019.*/@RestController
public class ShowController {@Resourceprivate ShowService showService;@GetMapping("/getTextById")public ResponseEntity getText(@RequestParam String id) {if(id!=null) {String text=showService.getDataById(id);JSONObject jsonObject=new JSONObject();jsonObject.put("text",text);return ResponseEntity.ok().body(jsonObject);}else {return ResponseEntity.badRequest().body(Collections.singletonMap("info","参数id为必填项"));}}}

至此,整个项目创建完成,然后就是启动测试了。
我是用的IDEA,启动命令 spring-boot:run,在IDEA上配置如图:

然后直接点击运行就可以了,记得访问接口时加上/testSpringboot。

Springboot简单应用相关推荐

  1. SpringSecurity使用SpringBoot简单使用

    SpringSecurity使用SpringBoot简单使用(一) 先来回顾下最开始我们不用框架时是怎么做认证授权的, 1.不用框架认证流程 1.客户端发送请求,controller层将请求对象封装成 ...

  2. SpringBoot 简单实现仿CAS单点登录系统

    SpringBoot 简单实现仿CAS单点登录系统 新境界开源开源SSO项目介绍 新境界开源SSO项目实现原理大致如下: 新境界开源SSO项目登录流程介绍 新境界开源SSO项目授权登录流程介绍 新境界 ...

  3. SpringBoot简单整合沙箱支付

    SpringBoot简单整合沙箱支付 操作步骤: 下载官方demo 配置 AlipayConfig相关信息 SpringBoot项目创建 解压官方demo,导入项目 业务代码编写 测试运行 相关注意事 ...

  4. Springboot简单练手的记账本

    Springboot简单练手的记账本 昨天看雷哥的教程写了个简单的记账本练练手,没有把笔记整理下来放在博客上,今天补上.言归正传,进入正题. 老规矩,我们还是先看看项目的目录结构,以及登陆界面 每个包 ...

  5. Shiro和SpringBoot简单集成

    Shiro是一种简单的安全框架,可以用来处理系统的登录和权限问题. 本篇记录一下Spring Boot和Shiro集成,并使用Jwt Token进行无状态登录的简单例子. 参考Demo地址,此Demo ...

  6. springBoot 简单优雅是实现文件上传和下载

    前言 好久没有更新spring Boot 这个项目了.最近看了一下docker 的知识,后期打算将spring boot 和docker 结合起来.刚好最近有一个上传文件的工作呢,刚好就想起这个脚手架 ...

  7. Springboot简单介绍

    Springboot入门介绍 一.Spring框架概述 1.1 什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnso ...

  8. Vue+Mysql+SpringBoot简单增删改查

    关于Spring篇 关于mybatis+maven基本知识掌握总结 maven中spring+springmvc+mybatis整合详细配置 SpringBoot+Mybatis+Redis基础配置 ...

  9. SpringBoot简单项目搭建,从数据读取数据展示到页面

    springboot快速搭建web项目,无需繁琐xml配置,热部署,无需重启服务器,简单部署只需打jar包即可,有很多的优点! 刚接触到springboot花费了好几个小时,撸完一个又一个的配置坑,最 ...

最新文章

  1. 常用python工具类代码总结
  2. Silverlight 2.0学习笔记——XAML
  3. ITK:处理矢量图像的N个分量
  4. MATLAB中的微积分运算(数值符号)
  5. CSS3技巧 —— 渐变
  6. Mybatis+Tomcat使用JNDI配置数据源入门
  7. 指令重排序所带来的问题及使用volatile关键字解决问题
  8. 哈啰出行回应单车违规投放:将尽快缴纳罚金 积极整改
  9. java string传递_Java,将String从一种方法传递到另一种方法
  10. Linux环境中的帮助命令有,Linux下的帮助命令
  11. XSLT Transform
  12. 「每天一道面试题」对象和GC Roots引用链没连接时一定会被回收吗
  13. Mac小白入门小技巧
  14. 2020 Java 全栈工程师进阶路线图,不可错过
  15. 作品交流:锁相环环路滤波器系数、NCO增益单位、鉴相器输出之间的关系
  16. 数据压缩作业:清音、浊音、爆破音频谱分析
  17. Unity中控制物体运动
  18. 僵尸进程和孤儿进程-(转自Anker's Blog)
  19. 解决屏保时间过短的问题(电脑息屏过快)
  20. 股民误将向日葵当成农业股

热门文章

  1. Visio studio 2019中opencv 4.1.1运行环境配置(亲测可用)
  2. 【阿里云课程】从零开始1小时快速掌握Pytorch核心功能,完成完整的项目实践...
  3. 【AI白身境】学AI必备的python基础
  4. 中国节能减排行业十四五运行现状及建设应用价值分析报告2021-2027年
  5. 中国石蜡行业供需情况与投资战略规划研究报告2022-2028年版
  6. 中国伺服电机行业运营现状及前景趋势展望报告2022-2028年版
  7. 中国新能源商用车行业投资现状及前景规划分析报告2022-2027年版
  8. 工信部企业信息核查 谋定“互联网+监管”经信研究创新实践
  9. Windows Server 2012 配置远程桌面帐户允许多用户同时登录
  10. windows下 sqlplus / as sysdba 报ora-12560的终极解决方法