springboot创建webservice访问mysql(使用maven)

安装

使用maven,在你的pom.xml中添加如下配置
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
</parent> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency> <plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin> maven package 测试是否安装成功
mvn dependency:tree 查看你的安装依赖

起步

src/main/java 下面添加一个类,假如如下代码

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*; @SpringBootApplication // 声明主程序类
@RestController // 声明我们的类是一个web容器
@EnableAutoConfiguration // 自动配置spring
public class first {
@RequestMapping("/") // 监听("/")路由,返回字符串
String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(first.class, args); // 开启tomcat服务器,运行程序 }
} 如果端口冲突,可以配置tomcat的端口
在src/main/resources/
创建文件application.properties
加入 server.port=8888 # application.properties文件的格式
application.name=@project.name@
application.version=@project.version@ 1. maven运行spring
运行 mvn spring-boot:run
2. 打包成可执行文件执行
运行 mvn package 打包war文件
运行 jar tvf FirstMaven-0.0.1-SNAPSHOT.war 查看war包里面的内容
运行 java -jar FirstMaven-0.0.1-SNAPSHOT.war 运行可执行文件
访问 http://localhost:8888/#/

spring常用命令

mvn dependency:tree                                                 查看依赖
mvn spring-boot:run 运行程序
mvn package 打包程序
jar tvf myproject-0.0.1-SNAPSHOT.jar 查看jar包内部信息
java -jar myproject-0.0.1-SNAPSHOT.jar 运行你的jar包

spring常见注释

@RestController                                                     声明是一个控制器和@Controller等效,用来处理网络请求
@RequestMapping 声明请求的路径
@Autowired 自动注入,你可以使用构造器注入来代替@Autowired,如下
public class DatabaseAccountService implements AccountService {
private final RiskAssessor riskAssessor;
public DatabaseAccountService(RiskAssessor riskAssessor) {
this.riskAssessor = riskAssessor;
}
}
public class DatabaseAccountService implements AccountService {
@Autowired
RiskAssessor riskAssessor;
}
上面两者等价
@SpringBootApplication 等价于开启@EnableAutoConfiguration,@ComponentScan,@Configuration
@EnableAutoConfiguration 开启spring默认依赖配置
@ComponentScan 如果这个添加入口文件,那么可以扫描到@Component, @Service, @Repository, @Controller声明的文件,并且自动注册成bean
@Configuration 允许配置其他的bean和使用@Import导入其他配置类
@Import 导入其他配置类@Import({ MyConfig.class, MyAnotherConfig.class })

springboot入门级使用

配置你的pom.xml文件


<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
</parent> <properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<java.version>1.8</java.version>
</properties> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency> <plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
</jvmArguments>
</configuration>
</plugin>

配置文件

application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=1000
spring.datasource.min-idle=5
spring.datasource.initial-size=5
server.port=8888
server.session.timeout=10
server.tomcat.uri-encoding=UTF-8

创建所需测试类

Greeting.java
public class Greeting { private final long id;
private final String content; public Greeting(long id, String content) {
this.id = id;
this.content = content;
} public long getId() {
return id;
} public String getContent() {
return content;
}
} GreetingController.java import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicLong; import javax.security.auth.message.callback.PrivateKeyCallback.Request; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; @RestController // 标记控制器返回一个域对象
public class GreetingController {
@Autowired
private JdbcTemplate jdbcTemplate; private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong(); @CrossOrigin(origins = "http://localhost:8080") // 跨域设置
@RequestMapping("/greeting") // 绑定路由,支持get,post,put,限定路由方式的写法@RequestMapping(method=RequestMethod.GET,value="/greeting")
public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
return new Greeting(counter.incrementAndGet(), String.format(template, name));
} @CrossOrigin(origins = "http://localhost:8080")
@RequestMapping(method=RequestMethod.GET,value="/mytest")
public List<Map<String, Object>> mytest(@RequestParam(value="name", defaultValue="小红") String name) { // @RequestBody Map<String,Object> params
String sql = "select * from test WHERE name=?;";
List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, name);
return result;
}
}
first.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class first {
public static void main(String[] args) {
SpringApplication.run(first.class, args);
}
}

测试页面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
// axios.get('http://localhost:8888/greeting').then(function (response) {
// console.log(response);
// }).catch(function (error) {
// console.log(error);
// }).then(function () {
// }); // axios.get('http://localhost:8888/greeting', {
// params: {
// name: 'User'
// }
// }).then(function (response) {
// console.log(response);
// }).catch(function (error) {
// console.log(error);
// }).then(function () {
// }); axios.post('http://localhost:8888/greeting').then(function (response) {
console.log(response);
}).catch(function (error) {
console.log(error);
}).then(function () {
}); axios.post('http://localhost:8888/greeting', {
name: 'User'
}).then(function (response) {
console.log(response);
}).catch(function (error) {
console.log(error);
}).then(function () {
});
</script>
</head>
<body> </body>
</html>

绑定路由的其他方式

@GetMapping("/employees")
@GetMapping("/employees/{id}") @PostMapping("/employees") @PutMapping("/employees/{id}")
@DeleteMapping("/employees/{id}")

springboot成神之——springboot入门使用的更多相关文章

  1. springboot成神之——springboot+mybatis+mysql搭建项目简明demo

    springboot+mybatis+mysql搭建项目简明demo 项目所需目录结构 pom.xml文件配置 application.properties文件配置 MyApplication.jav ...

  2. springboot成神之——ioc容器(依赖注入)

    springboot成神之--ioc容器(依赖注入) spring的ioc功能 文件目录结构 lang Chinese English GreetingService MyRepository MyC ...

  3. springboot成神之——mybatis和mybatis-generator

    项目结构 依赖 generator配置文件 properties配置 生成文件 使用Example 本文讲解如何在spring-boot中使用mybatis和mybatis-generator自动生成 ...

  4. springboot成神之——swagger文档自动生成工具

    本文讲解如何在spring-boot中使用swagger文档自动生成工具 目录结构 说明 依赖 SwaggerConfig 开启api界面 JSR 303注释信息 Swagger核心注释 User T ...

  5. springboot成神之——log4j2的使用

    本文介绍如何在spring-boot中使用log4j2 说明 依赖 日志记录语句 log4j2配置文件 本文介绍如何在spring-boot中使用log4j2 说明 log4j2本身使用是非常简单的, ...

  6. springboot成神之——mybatis在spring-boot中使用的几种方式

    本文介绍mybatis在spring-boot中使用的几种方式 项目结构 依赖 WebConfig DemoApplication 方式一--@Select User DemoApplication ...

  7. springboot成神之——application.properties所有可用属性

    application.properties所有可用属性 # =================================================================== # ...

  8. springboot成神之——websocket发送和请求消息

    本文介绍如何使用websocket发送和请求消息 项目目录 依赖 DemoApplication MessageModel WebConfig WebSocketConfig HttpHandshak ...

  9. springboot成神之——发送邮件

    本文介绍如何用spring发送邮件 目录结构 依赖 MailConfig TestController 测试 本文介绍如何用spring发送邮件 目录结构 依赖 <dependency> ...

随机推荐

  1. java开发工具idea,在install时候报错The packaging for this project did not assign a file to the build artifact

    intellij中install报错:The packaging for this project did not assign a file to the build artifact 原因是run ...

  2. 51nod 1406 位运算/dp

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1406 1406 与查询 题目来源: CodeForces 基准时间限制: ...

  3. opencv:傅里叶变换

    示例代码: #include <opencv.hpp> #include <iostream> using namespace std; using namespace cv; ...

  4. canvas压缩图片成base64,传到后台解码需要注意的问题

    去除压缩完后的头部标志,data:imge一直到,位置,然后看看有没有空格,有的就替换成+号,传送的时候+号被http协议去掉了

  5. 在Windows下为PHP5.6安装redis扩展

    Redis 安装 Window 下安装 下载地址:https://github.com/MSOpenTech/redis/releases. Redis 支持 32 位和 64 位.这个需要根据你系统 ...

  6. react: navigator

    1.page js import React from "react"; import {Link} from "react-router-dom"; impo ...

  7. Android UID and PID

    Android UID and PID 我们经常在一个activity中去start另一个activity,或者与另一个acitivity的结果进行交互 (startActivityForResult ...

  8. Intellij IDEA带参数启动Springboot注意事项

    问题 不同版本的spring-boot-maven-plugin的jvm参数配置有所不同,同时与通过main方法启动springboot程序传递参数也有所不同. 分析 在运行main方法时,可以通过j ...

  9. Comparing Xamarin and Delphi XE5 to Xcode for Cross Platform Mobile App Development

    Comparing Xamarin and Delphi XE5 to Xcode for Cross Platform Mobile App Development If you are consi ...

  10. I.MX6 AR8031 寄存器操作

    /*************************************************************************** * I.MX6 AR8031 寄存器操作 * ...