SpringBoot入门系列之第一篇:HelloWorld
来源:互联网 发布:淘宝网男女童运动服 编辑:程序博客网 时间:2024/06/06 08:37
springboot快速构建
spring initializr生成项目
- 访问http://start.spring.io/ 。SPRING INITIALIZR 生成项目
- 定义项目坐标,maven方式构建,springboot版本用1.5.4
选择具体版本,包名需要注意下,打包方式为jar包,dk版本是1.8,其他的依赖先不管,后面需要在添加。
点击Generate Project,会自动下载blog.zip压缩包。
解压缩包到本地如下图,把红框部分删除掉。
标准maven项目目录
打开IDE选择Maven工程导入
运行BlogApplication。 项目shutdown。控制台报错Unregistering JMX-exposed beans on shutdown
引入web组件
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>
重新运行BlogApplication
浏览器访问 http://localhost:8080/
springboot其他创建方式
maven创建
创建一个Project项目``` javascript mvn archetype:generate -DgroupId=cn.chf -DartifactId=blog -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false```
mvn archetype:generate 固定格式
DgroupId 组织标识(包名)
DartifactId 项目名称
DarchetypeArtifactId 指定ArchetypeId,maven-archetype-quickstart,创建一个Java Project;maven-archetype-webapp,创建一个Web Project
DinteractiveMode 是否使用交互模式- IDE构建
图形化操作,一般都new application - 等等
springboot restful简单访问
相关依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
创建controller包,包内创建LoginControler.java,处理API请求:
@(SpringBoot入门系列)RestControllerpublic class LoginController { String su = "test"; String ps = "pd"; @GetMapping("/") public String hello() { return "hello world"; } @GetMapping("/login") public String login(@RequestParam("username") String username, @RequestParam("passwd") String passwd) { if (su.equals(username) && ps.equals(passwd)) { return "登录成功!"; } else { return "登录失败!"; } }}
- 访问:http://localhost:8080/login?username=test&passwd=pd
返回:”登录成功!”
项目简单重构
返回状态码统一设定
package cn.chf.blog.enums;public enum ResultEnum { /** * 成功 */ SUCCESS("200", "成功"), /** * 未知错误 */ UNKONW_ERROR("-1", "未知错误"); private ResultEnum(String code, String message) { this.code = code; this.message = message; } public String code() { return code; } public String message() { return message; } private String code; private String message;}
json返回格式统一:Result.java
package cn.chf.blog.pojo;public class Result<T> { private String code; private String message; private T data; public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public T getData() { return data; } public void setData(T data) { this.data = data; } @Override public String toString() { return "Result [code=" + code + ", message=" + message + ", data=" + data + "]"; }}
同意返回处理:ResultJsonUtil.java
package cn.chf.blog.utils;import cn.chf.blog.enums.ResultEnum;import cn.chf.blog.pojo.Result;public class ResultJsonUtil { public static Result<Object> success(Object object){ Result<Object> result = new Result<Object>(); result.setCode(ResultEnum.SUCCESS.code()); result.setMessage(ResultEnum.SUCCESS.message()); result.setData(object); return result; } public static Result success(){ return success(null); } public static Result error(String code,String message){ Result result = new Result(); result.setCode(code); result.setMessage(message); return result; }}
新建service包:增加业务处理类
package cn.chf.blog.service;import org.springframework.stereotype.Service;import cn.chf.blog.pojo.Result;import cn.chf.blog.utils.ResultJsonUtil;@Servicepublic class LoginService { String su = "test"; String ps = "pd"; public Result loginIn(String username,String password){ if (su.equals(username) && ps.equals(password)) { return ResultJsonUtil.success(); } else { return ResultJsonUtil.error("1001", "用户名和密码不正确"); } }}
重构Controller:LoginController
package cn.chf.blog.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import cn.chf.blog.enums.ResultEnum;import cn.chf.blog.pojo.Result;import cn.chf.blog.service.LoginService;import cn.chf.blog.utils.ResultJsonUtil;@RestControllerpublic class LoginController { @Autowired private LoginService loginService; @GetMapping("/") public String hello() { return "hello world"; } @GetMapping("/login") public Result login(@RequestParam("username") String username, @RequestParam("passwd") String passwd) { return loginService.loginIn(username, passwd); }}
spring注解
- @SpringBootApplication
相当于添加@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解。 - @GetMapping(“/”)
是@RequestMapping(method = RequestMethod.GET)的缩写。 - @RestController
相当于添加@ResponseBody,@Controller注解 - @Autowired
对成员变量,方法,构造函数进行标注,完成自动装配,注入的工作 - @RequestParam(“username”)
获取参数username,相当于request.getParameter(“username”)(HttpServletRequest) - @Service
标注服务层组件bean,实例化该组件,如LoginService实例化为loginService
也可以@Service(“需要的实例化的bean名”)
- SpringBoot入门系列之第一篇:HelloWorld
- SpringBoot入门系列:第一篇 Hello World
- SpringBoot入门系列:第一篇 Hello World
- SpringBoot入门系列:第一篇 Hello World
- SpringBoot入门系列:第一篇 Hello World
- SpringBoot入门系列:第一篇 Hello World
- SpringBoot入门系列:第一篇 Hello World
- SpringBoot入门系列:第一篇 Hello World
- SpringBoot入门系列:第一篇 Hello World
- SpringBoot入门系列:第一篇 Hello World
- SpringBoot入门系列:第一篇 Hello World
- vue第一篇之入门helloworld
- Springboot入门第一篇之身世介绍
- SpringBoot入门之HelloWorld
- SpringBoot入门之HelloWorld
- SpringBoot入门系列:第一篇 Hello World(转载)
- springboot入门第二篇之Helloworld
- SpringBoot入门之HelloWorld(含源码)
- Linux下的crond和crontab
- Razor语法大全
- 单例模式的两个最简单应用(懒汉式、饿汉式)
- mqtt消息推送-推送服务简单实现
- 1191: [HNOI2006]超级英雄Hero
- SpringBoot入门系列之第一篇:HelloWorld
- python中if __name__ == '__main__'
- 线程
- Charles学习笔记(1)——Charles安装与配置
- Rotate Array
- rsyslog v8安装、配置
- 2017年中总结-小海
- linux服务器上安装github服务
- Struts2_请求执行流程