springboot创建webservice访问mysql(使用maven)
安装
使用maven,在你的pom.xml中添加如下配置 org.springframework.boot spring-boot-starter-parent 2.0.4.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-devtools true org.springframework.boot spring-boot-maven-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 // 自动配置springpublic 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:run2. 打包成可执行文件执行 运行 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文件
org.springframework.boot spring-boot-starter-parent 2.0.4.RELEASE 1.8 1.8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-jdbc mysql mysql-connector-java org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
配置文件
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
测试页面
Document
绑定路由的其他方式
@GetMapping("/employees")@GetMapping("/employees/{id}")@PostMapping("/employees")@PutMapping("/employees/{id}")@DeleteMapping("/employees/{id}")