SpringBoot01-简介及入门

x33g5p2x  于2021-03-14 发布在 其他  
字(2.8k)|赞(0)|评价(0)|浏览(69)

什么是Spring Boot

(一)当前Java开发遇到的问题

  • 繁多的配置
  • 低下开发的效率
  • 复杂的部署流程
  • 第三方技术集成难度大

(二)Spring Boot的诞生

Spring Boot的目的

Spring Boot是在Spring框架基础上创建的全新框架。相比于以往的一些开发框架,Spring Boot使用更加简单,而且功能更加丰富,性能更加稳定而健壮。Spring Boot的设计目的就是简化开发,让开发者能把更多的精力投入到实际业务中。

Spring Boot核心理念

Convention Over Configuration (约定优于配置)

Spring Boot特点

  • 开箱即用,根据项目依赖自动配置。
  • 功能强大的服务体系,如:嵌入式服务、安全、性能指标、健康检查
  • 绝无代码生成,可以不需要任何xml配置(使用Java配置和注解来代替)
  • 对第三方技术几乎完美整合

(三)Spring Boot快速上手

Spring Boot非命令行构件的三种方式

  1. IntelliJ IDEA自带构件Spring Boot

  2. Eclipse 安装STS插件

    1. 可以在官方下载安装,官方地址:https://spring.io/tools/sts/all
    2. 可以在Eclipse的MarketPlace中安装:image
  3. 使用官方自带的生成工具:

    1. 进入官网,在DOCS栏目中点击如下:
      image
    2. 选择项目构件工具和Spring Boot的版本
      image
    3. 展开扩展选项,进行更详细配置,这里我们用到SpringMVC,只需要勾选一个WEB即可
      image
    4. 点击按钮 image 生成项目。
    5. 解压项目后,是一个标准的Maven工程,导入到IDE中即可。

Spring Boot项目结构简介

项目结构如图
image

  • SpringbootdemoApplication.java:Spring Boot的启动入口,以及一些全局的配置。注解@SpringBootApplication表明了这是Spring Boot的应用入口,Spring官方建议该入口有且只有一个。
  • static目录:Spring Boot约定的静态文件目录,只要放在这个目录中,Spring Boot就会当成静态文件处理。
  • templates:Spring Boot约定的模板目录,如FreeMarker、Thymeleaf(默认)、Jsp(不建议)等
  • application.properties:Spring Boot的配置文件,可以是.properties或者.yml(spring推荐)
  • pom.xml文件:Maven的构建配置文件。其中spring-boot-starter-parent是Spring Boot构建的基础,负责依赖管理与默认配置,spring-boot-starter-web是SpringMVC的依赖,spring-boot-starter-test是测试依赖,spring-boot-maven-plugin是Spring Boot的打包插件。通过简单的依赖配置,Spring Boot将自动帮我们导入其他所需要的依赖包。

一次请求响应

  1. 在com.luyou下创建一个domain包,一个controller包,domain包里创建一个User类,controller包里创建一个TestController类,如下:

User:

public class User implements Serializable{

	private long id;
	private String name;
	@JsonFormat(pattern="yyyy年MM月dd日")
	private Date birthDay;
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private Date registerDate;
	
	get/set ...
}

TestController:

@RestController
@RequestMapping(value = "/test")
public class TestController {

	@GetMapping("/getmap")
	public Map<Long,Object> getMap(){
		Map<Long,Object> map = new HashMap<>();
		User user = new User();
		Date date = new Date();
		
		user.setBirthDay(date);
		user.setRegisterDate(date);
		user.setId((long)(Math.random()*50000));
		user.setName("张三丰");
		
		map.put(user.getId(),user);
		return map;
	}
}
  1. 到SpringbootdemoApplication中运行main方法,会在控制台看到Spring Boot的启动画面,在启动日志中,会发现
    • Tomcat started on port(s): 8080 (http)
    • Started SpringbootdemoApplication in 5.938 seconds (JVM running for 6.524)
      这样的输出,表示应用已经启动好了。
  2. 通过浏览器或者postman访问:127.0.0.1:8080/test/getmap,会发现json已经返回。
    image

打包

  1. 通过Eclipse的maven插件打包:在项目上右键-->Run as--> Maven Build,如果是第一次,会出现如下对话框:
    image
  2. 打包成功后,在项目的target目录下会生成对应的jar包(若没有,请刷新一下项目),我们需要的是包含完整依赖的springbootdemo-0.0.1-SNAPSHOT.jar,而另外一个后缀为.original的包中只有我们自己的代码,没有相关的依赖包。
    image

部署

先将springbootdemo-0.0.1-SNAPSHOT.jar改名成springbootdemo.jar方便敲键盘。
现在我们换一种操作系统,比如linux,将springbootdemo-0.0.1-SNAPSHOT.jar上传到系统中,比如/luyou/springboot/,然后执行:

  java -jar /luyou/springboot/springbootdemo.jar

这样,项目就已经部署好了。

怎样做到

Spring Boot的入门就这样完成了,一个最基本的mvc框架。

  • Spring Boot 默认会扫描注解@SpringBootApplication所在以及子包,如果发现包下面的类有如@Controller@Service@Component@Repository...这样的注解,会注册成由spring管理的一个Bean。
  • Spring Boot内嵌了Tomcat容器,默认端口8080(这个端口号,就是在没有额外配置时的约定
  • Spring Boot默认使用了Jackson作为json的处理器。

相关文章