Springboot简单应用
一直用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简单应用相关推荐
- SpringSecurity使用SpringBoot简单使用
SpringSecurity使用SpringBoot简单使用(一) 先来回顾下最开始我们不用框架时是怎么做认证授权的, 1.不用框架认证流程 1.客户端发送请求,controller层将请求对象封装成 ...
- SpringBoot 简单实现仿CAS单点登录系统
SpringBoot 简单实现仿CAS单点登录系统 新境界开源开源SSO项目介绍 新境界开源SSO项目实现原理大致如下: 新境界开源SSO项目登录流程介绍 新境界开源SSO项目授权登录流程介绍 新境界 ...
- SpringBoot简单整合沙箱支付
SpringBoot简单整合沙箱支付 操作步骤: 下载官方demo 配置 AlipayConfig相关信息 SpringBoot项目创建 解压官方demo,导入项目 业务代码编写 测试运行 相关注意事 ...
- Springboot简单练手的记账本
Springboot简单练手的记账本 昨天看雷哥的教程写了个简单的记账本练练手,没有把笔记整理下来放在博客上,今天补上.言归正传,进入正题. 老规矩,我们还是先看看项目的目录结构,以及登陆界面 每个包 ...
- Shiro和SpringBoot简单集成
Shiro是一种简单的安全框架,可以用来处理系统的登录和权限问题. 本篇记录一下Spring Boot和Shiro集成,并使用Jwt Token进行无状态登录的简单例子. 参考Demo地址,此Demo ...
- springBoot 简单优雅是实现文件上传和下载
前言 好久没有更新spring Boot 这个项目了.最近看了一下docker 的知识,后期打算将spring boot 和docker 结合起来.刚好最近有一个上传文件的工作呢,刚好就想起这个脚手架 ...
- Springboot简单介绍
Springboot入门介绍 一.Spring框架概述 1.1 什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnso ...
- Vue+Mysql+SpringBoot简单增删改查
关于Spring篇 关于mybatis+maven基本知识掌握总结 maven中spring+springmvc+mybatis整合详细配置 SpringBoot+Mybatis+Redis基础配置 ...
- SpringBoot简单项目搭建,从数据读取数据展示到页面
springboot快速搭建web项目,无需繁琐xml配置,热部署,无需重启服务器,简单部署只需打jar包即可,有很多的优点! 刚接触到springboot花费了好几个小时,撸完一个又一个的配置坑,最 ...
最新文章
- 常用python工具类代码总结
- Silverlight 2.0学习笔记——XAML
- ITK:处理矢量图像的N个分量
- MATLAB中的微积分运算(数值符号)
- CSS3技巧 —— 渐变
- Mybatis+Tomcat使用JNDI配置数据源入门
- 指令重排序所带来的问题及使用volatile关键字解决问题
- 哈啰出行回应单车违规投放:将尽快缴纳罚金 积极整改
- java string传递_Java,将String从一种方法传递到另一种方法
- Linux环境中的帮助命令有,Linux下的帮助命令
- XSLT Transform
- 「每天一道面试题」对象和GC Roots引用链没连接时一定会被回收吗
- Mac小白入门小技巧
- 2020 Java 全栈工程师进阶路线图,不可错过
- 作品交流:锁相环环路滤波器系数、NCO增益单位、鉴相器输出之间的关系
- 数据压缩作业:清音、浊音、爆破音频谱分析
- Unity中控制物体运动
- 僵尸进程和孤儿进程-(转自Anker's Blog)
- 解决屏保时间过短的问题(电脑息屏过快)
- 股民误将向日葵当成农业股
热门文章
- Visio studio 2019中opencv 4.1.1运行环境配置(亲测可用)
- 【阿里云课程】从零开始1小时快速掌握Pytorch核心功能,完成完整的项目实践...
- 【AI白身境】学AI必备的python基础
- 中国节能减排行业十四五运行现状及建设应用价值分析报告2021-2027年
- 中国石蜡行业供需情况与投资战略规划研究报告2022-2028年版
- 中国伺服电机行业运营现状及前景趋势展望报告2022-2028年版
- 中国新能源商用车行业投资现状及前景规划分析报告2022-2027年版
- 工信部企业信息核查 谋定“互联网+监管”经信研究创新实践
- Windows Server 2012 配置远程桌面帐户允许多用户同时登录
- windows下 sqlplus / as sysdba 报ora-12560的终极解决方法