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花费了好几个小时,撸完一个又一个的配置坑,最 ...
最新文章
- 独家 | 提升API设计技能的22个最佳实践(附链接)
- python3射线法判断点是否在多边形内
- python-水仙花数
- 没有会员wps合并多个sheet_WPS「合并文档」功能,如何“唰”一下把多个文档合并到一起?...
- Web群集与日志管理Haproxy搭建
- element走马灯自动_详细element-ui的走马灯carousel轻松实现自适应全屏banner详细过程...
- vue js 反编译_学会了Vue,前端面试却没找到工作?
- LeetCode-124.二叉树中的最大路径和
- spark性能调优:资源优化
- 双向BUCK BOOST DCDC变换器仿真模型 BUCK BOOST 拓扑结构,电压电流双闭环控制策略
- 禾川Q1系列PLC官方教程
- 深入理解HashMap底层数据结构
- 台式计算机c盘怎么清理空间,练习教你电脑如何清理系统c盘空间
- AD7705模块设计(附源码)
- SQL简体繁体转换函数
- 从80年代初到2003年末中国出现的街头骗术
- 计算机网络(三)—— 数据链路层(8、9):集线器与交换机的区别、以太网交换机自学习和转发帧的流程
- Java 电商订单管理设计,基于Java的电商网站的设计与实现
- C语言PAT刷题 - 1019 数字黑洞
- Word制作毕业论文技巧实例--转载
热门文章
- linux 初始化数组,c – 使用initializer_list初始化数组?
- c打开指定路径文件_C++ 读取指定路径下所有的文件 (C++ get the list of files in a directory)...
- jq 通过标签名称获取标签_怎样利用tag标签来获取长尾关键词排名
- 多视图几何总结——从本质矩阵恢复摄像机矩阵
- 中国超细旦丝现状调研及投资前景评估报告2022-2028年版
- tomcat8启动慢
- iOS快速开发框架--Bee Framework
- url编码混乱下下载工具如何应对
- VB 禁止修改系统时间
- 怎样用VB编写.DLL动态链接库文件 1