Spring Boot 2 入门案例

第一、Spring Boot的诞生

虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。
第一阶段:XML配置
在Spring 1.x时代,使用Spring开发满眼都是XML配置的Bean,随着项目的扩大,我们需要把XML配置文件放到不同的配置文件夹里,那时需要频繁的在开发的类和配置文件之间进行切换。
第二阶段:注解配置
在Spring2.x时代,随着JDK1.5带来的注解支持,Spring提供了声明Bean的注解(例如@Component,@Service),大大减少了配置量。主要使用的方式是应用的基本配置(如数据库配置)用XML,业务配置用注解。
第三阶段:Java配置
Spring3.0引入了基于java的配置能力,这是一种类型安全的可重构配置方式,可以替代XML,我们目前刚好处于这个时代,Spring4.x和Spring Boot都推荐使用Java配置。
所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以写配置挤占了写应用程序逻辑的时间。除此之外,项目的依赖管理也是件吃力不讨好的事情。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这难题实在太棘手。并且,依赖管理也是一种损耗,添加依赖不是写应用程序代码,一旦选错了依赖的版本,随之而来的不兼容问题毫无疑问会是生产力杀手。

Spring Boot让这一切成为了过去。
Spring Boot简化了基于Spring的应用的开发,只需要run就能创建一个独立的,生产级别的spring应用。Spring Boot为Spring平台及第三方库提供开箱即用的设置(提供默认设置),这样我们可以简单的开始,多数Spring Boot应用只需要很少的Spring配置。

Spring Boot主要目标是
1.为所有Spring的开发提供一个从根本上更快地入门体验。
2.开箱即用,但通过自己设置参数,即可快速摆脱这种方式。
3.提供了一些大型项目中常见的功能性特性,如内嵌服务器,安全,指标,健康监测,外部化配置等
4.绝对没有代码生成,也无需XML配置。

第二、Spring Boot环境准备

工具版本
JDK1.8以上
Spring Boot2.1.6
maven3.5

第三、新建Maven工程,修改pom.xml文件,引入Jar

pom.xml文件如下

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.6.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>
  <groupId>com.shi</groupId>
  <artifactId>SpringBoot</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
		</dependency>
		<dependency>
		    <groupId>log4j</groupId>
		    <artifactId>log4j</artifactId>
		    <version>1.2.17</version>
		</dependency>
		<dependency>
		    <groupId>com.alibaba</groupId>
		    <artifactId>fastjson</artifactId>
		    <version>1.2.60</version>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
		<resources>
			<resource>
			<directory>src/main/resources</directory>
				<filtering>true</filtering>
				<includes>
					<include>**/*.xml</include>
					<include>**/*.properties</include>
					<include>**/*.html</include>
					<include>/static/</include>
				</includes>
			</resource>
		</resources>
	</build>
</project>

若发现部分jar无法下载成功,可以在maven中的settings.xml文件中增加下面一段配置

	<!-- 阿里云仓库 -->
	<mirror>
    	<id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

第三、上手写代码

1.com.shi.SpringBootRunApplication.java

package com.shi;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * SpringBoot 启动类(引导类)
 * @author shixiangcheng
 * 2019-09-07
 */
@SpringBootApplication//表面当前类是SpringBoot的引导类
public class SpringBootRunApplication {
	public static void main(String[] args) {
		System.out.println("start spring boot");
		SpringApplication.run(SpringBootRunApplication.class, args);
	}
}

2.com.shi.controller.UserController.java

package com.shi.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.shi.dto.User;
/**
 * 示例
 * @author shixiangcheng
 * 2019-09-07
 */
@RestController
@RequestMapping("/user")
public class UserController {
	@RequestMapping("/sayHi")
	public String sayHi(){
		return "Hello Spring Boot";
	}
	@RequestMapping("/query")
	public User query(){
		User user=new User();
		user.setId("1");
		user.setName("小小大侠客");
		return user;
	}
}

3.com.shi.dto.User.java

package com.shi.dto;
import java.io.Serializable;
/**
 * 实体类
 * @author shixiangcheng
 * 2019-09-07
 */
public class User implements Serializable{
	private String id;
	private String name;
	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;
	}
}

4.Run As—> Java Application 运行引导类
启动成功

start spring boot
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.6.RELEASE)

2019-09-07 22:26:37.130  INFO 7772 --- [           main] com.shi.SpringBootRunApplication         : Starting SpringBootRunApplication on AndyShi-PC with PID 7772 (D:\maven\workspace\SpringBoot\target\classes started by Andy.Shi in D:\maven\workspace\SpringBoot)
2019-09-07 22:26:37.143  INFO 7772 --- [           main] com.shi.SpringBootRunApplication         : No active profile set, falling back to default profiles: default
2019-09-07 22:26:45.312  INFO 7772 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2019-09-07 22:26:45.799  INFO 7772 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-09-07 22:26:45.800  INFO 7772 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.21]
2019-09-07 22:26:46.598  INFO 7772 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-09-07 22:26:46.599  INFO 7772 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 8908 ms
2019-09-07 22:26:48.103  INFO 7772 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2019-09-07 22:26:49.289  INFO 7772 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2019-09-07 22:26:49.294  INFO 7772 --- [           main] com.shi.SpringBootRunApplication         : Started SpringBootRunApplication in 15.952 seconds (JVM running for 19.796)

5.浏览器访问
在这里插入图片描述
在这里插入图片描述
欢迎大家积极留言交流学习心得,点赞的人最美丽,谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值