`
baobeituping
  • 浏览: 1062376 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程

 
阅读更多

转载请标明出处: 

http://blog.csdn.net/forezp/article/details/70341651 

本文出自方志朋的博客

简介

 

spring boot 它的设计目的就是为例简化开发,开启了各种自动装配,你不想写各种配置文件,引入相关的依赖就能迅速搭建起一个web工程。它采用的是建立生产就绪的应用程序观点,优先于配置的惯例。

 

可能你有很多理由不放弃SSM,SSH,但是当你一旦使用了springboot ,你会觉得一切变得简单了,配置变的简单了、编码变的简单了,部署变的简单了,感觉自己健步如飞,开发速度大大提高了。就好比,当你用了IDEA,你会觉得再也回不到Eclipse时代一样。另,本系列教程全部用的IDEA作为开发工具。

 

建构工程

 

你需要:

 

15分钟

jdk 1.8或以上

maven 3.0+

Idea

打开Idea-> new Project ->Spring Initializr ->填写group、artifact ->钩上web(开启web功能)->点下一步就行了。

 

工程目录

 

创建完工程,工程的目录结构如下:

 

- src

    -main

        -java

            -package

                -SpringbootApplication

        -resouces

            - statics

            - templates

            - application.yml

    -test

- pom

 

pom文件为基本的依赖管理文件

resouces 资源文件 

statics 静态资源

templates 模板资源

application.yml 配置文件

SpringbootApplication程序的入口。

pom.xml的依赖:

 

<?xml version="1.0" encoding="UTF-8"?>

<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>

 

    <groupId>com.forezp</groupId>

    <artifactId>springboot-first-application</artifactId>

    <version>0.0.1-SNAPSHOT</version>

    <packaging>jar</packaging>

 

    <name>springboot-first-application</name>

    <description>Demo project for Spring Boot</description>

 

    <parent>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-parent</artifactId>

        <version>1.5.2.RELEASE</version>

        <relativePath/> <!-- lookup parent from repository -->

    </parent>

 

    <properties>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <java.version>1.8</java.version>

    </properties>

 

    <dependencies>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

 

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

            <scope>test</scope>

        </dependency>

    </dependencies>

 

    <build>

        <plugins>

            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

            </plugin>

        </plugins>

    </build>

 

 

</project>

 

其中spring-boot-starter-web不仅包含spring-boot-starter,还自动开启了web功能。

 

功能演示

 

说了这么多,你可能还体会不到,举个栗子,比如你引入了Thymeleaf的依赖,spring boot 就会自动帮你引入SpringTemplateEngine,当你引入了自己的SpringTemplateEngine,spring boot就不会帮你引入。它让你专注于你的自己的业务开发,而不是各种配置。

 

再举个栗子,建个controller:

 

import org.springframework.web.bind.annotation.RestController;

import org.springframework.web.bind.annotation.RequestMapping;

 

@RestController

public class HelloController {

 

    @RequestMapping("/")

    public String index() {

        return "Greetings from Spring Boot!";

    }

 

}

 

启动SpringbootFirstApplication的main方法,打开浏览器localhost:8080,浏览器显示:

 

Greetings from Spring Boot!

神奇之处:

 

你没有做任何的web.xml配置。

你没有做任何的sping mvc的配置; springboot为你做了。

你没有配置tomcat ;springboot内嵌tomcat.

启动springboot 方式

 

cd到项目主目录:

 

mvn clean  

mvn package  编译项目的jar

1

2

mvn spring-boot: run 启动

cd 到target目录,java -jar 项目.jar

来看看springboot在启动的时候为我们注入了哪些bean

 

在程序入口加入:

 

@SpringBootApplication

public class SpringbootFirstApplication {

 

    public static void main(String[] args) {

        SpringApplication.run(SpringbootFirstApplication.class, args);

    }

 

    @Bean

    public CommandLineRunner commandLineRunner(ApplicationContext ctx) {

        return args -> {

 

            System.out.println("Let's inspect the beans provided by Spring Boot:");

 

            String[] beanNames = ctx.getBeanDefinitionNames();

            Arrays.sort(beanNames);

            for (String beanName : beanNames) {

                System.out.println(beanName);

            }

 

        };

    }

 

}

 

 

程序输出:

 

Let’s inspect the beans provided by Spring Boot: 

basicErrorController 

beanNameHandlerMapping 

beanNameViewResolver 

characterEncodingFilter 

commandLineRunner 

conventionErrorViewResolver 

defaultServletHandlerMapping 

defaultViewResolver 

dispatcherServlet 

dispatcherServletRegistration 

duplicateServerPropertiesDetector 

embeddedServletContainerCustomizerBeanPostProcessor 

error 

errorAttributes 

errorPageCustomizer 

errorPageRegistrarBeanPostProcessor

…. 

….

在程序启动的时候,springboot自动诸如注入了40-50个bean.

 

单元测试

 

通过@RunWith() @SpringBootTest开启注解:

 

@RunWith(SpringRunner.class)

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

public class HelloControllerIT {

 

    @LocalServerPort

    private int port;

 

    private URL base;

 

    @Autowired

    private TestRestTemplate template;

 

    @Before

    public void setUp() throws Exception {

        this.base = new URL("http://localhost:" + port + "/");

    }

 

    @Test

    public void getHello() throws Exception {

        ResponseEntity<String> response = template.getForEntity(base.toString(),

                String.class);

        assertThat(response.getBody(), equalTo("Greetings from Spring Boot!"));

    }

}

 

运行它会先开启sprigboot工程,然后再测试,测试通过 ^.^

分享到:
评论

相关推荐

    SpringBootLearning_forezp.tar.gz

    SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程 配置篇 SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解 数据库篇 SpringBoot非官方教程 | 第三篇:SpringBoot用JdbcTemplates访问Mysql ...

    SpringBootLearning

    欢迎关注:入门篇配置篇数据库篇构架文档篇SpringBoot非官方教程 | 第十篇: 用spring Restdocs创建API文档 SpringBoot非官方教程 | 第十一篇:springboot集成swagger2,构建优雅的Restful APISpringBoot非官方教程 ...

    SpringBoot入门.pdf

    在快速上手方面,SpringBoot支持多种非命令行方式构建项目,例如在IntelliJ IDEA和Eclipse中都有便捷的方式去创建SpringBoot项目。对于初学者而言,甚至可以通过官方网站提供的在线工具快速生成项目结构,然后直接...

    springboot2视频教程

    - **社区论坛**:加入Spring Boot的社区论坛,如Stack Overflow,可以获得来自其他开发者的第一手经验和技术支持。 通过以上介绍,相信你已经对Spring Boot 2有了较为全面的了解。无论是初学者还是有一定经验的...

    SpringBoot官方英文参考资料

    开发第一个 Spring Boot 应用 - **创建 POM 文件**:详细介绍了如何创建项目的 POM 文件,包括添加必要的依赖项。 - **添加类路径依赖**:列举了常见的类路径依赖项,并解释了它们的作用。 - **编写代码** - 使用 ...

    SpringBoot官方文档

    - **创建第一个 Spring Boot 应用**: - **创建 POM 文件**:定义项目的依赖关系。 - **添加 classpath 依赖**:通过 Maven 或 Gradle 添加必要的依赖库。 - **编写代码**: - 使用 `@RestController` 和 `@...

    springboot demo

    SpringBoot是Spring框架的一种简化开发方式,它集成了大量常用的第三方库配置,如JPA、MVC、Data、Security等,使得开发者可以快速构建稳定、生产级别的应用。在这个"springboot demo"中,我们可以深入学习...

    springboot基础讲解

    4. **开发你的第一个 Spring Boot 应用**: - **创建 POM**:在项目根目录下创建 `pom.xml` 文件。 - **添加 classpath 依赖**:向 POM 文件中添加必要的依赖。 - **编写代码**: - **@RestController 和 @...

    SpringBoot2.0文档代码

    在“每特教育蚂蚁课堂余老师原创制作SpringBoot教学文档.docx”中,你可能会学习到如何创建第一个SpringBoot应用,理解自动配置的工作原理,以及如何编写Controller、Service、Repository等核心组件。此外,文档可能...

    springboot+es实现对word,pdf,txt等文件的非结构化数据全文内容检索

    总的来说,通过Spring Boot、Elasticsearch和Kibana的组合,我们可以构建一个高效的非结构化数据全文检索系统,覆盖多种文件格式,满足复杂的信息检索需求。这个系统的应用范围广泛,包括但不限于文档管理、知识图谱...

    超详细的SpringBoot框架入门教程 Spring Boot框架快速入门教程以大量示例讲解了Spring Boot在各类情境

    1. **第一种方式**:通过IDEA或Eclipse等集成开发环境的Spring Initializr插件创建Spring Boot项目。 2. **第二种方式**:访问Spring官方网站提供的Spring Initializr在线工具,选择项目模板和依赖后生成pom.xml文件...

    SpringBoot 44道面试题和答案.docx

    SpringBoot与SpringCloud的区别在于,SpringBoot是快速开发Spring应用的基础框架,而SpringCloud则是一个完整的微服务框架,它依赖于SpringBoot来构建分布式系统。 SpringBoot 2.x相比1.x的新特性包括: 1. 配置...

    SpringBoot

    “文档”可能是官方文档或者其他第三方教程,这些文档会详细阐述Spring Boot的各个模块和最佳实践,是学习过程中的重要参考资料。 总的来说,Spring Boot简化了Java Web应用的开发,使得开发者可以更专注于业务逻辑...

    【java框架】SpringBoot2(1) -- SpringBoot2入门及基础配置(csdn)————程序..pdf

    SpringBoot2.x是Spring Boot框架的一个重要版本更新,它在2018年3月发布,带来了许多增强和新功能。这个版本不仅为小型企业和新项目提供了更好的开发体验,而且由于核心注解配置的兼容性,使得从1.x版本平滑过渡到2....

    springboot中文参考指南

    - **开发第一个Spring Boot应用**: - **创建POM**:指导如何创建项目的pom.xml文件。 - **添加classpath依赖**:列出必须包含的依赖项。 - **编写代码**: - 使用`@RestController`和`@RequestMapping`注解来...

    springboot的概要介绍与分析

    - **Spring Boot官方文档**:提供了详细的Spring Boot使用指南和API文档,是学习Spring Boot的第一手资料。 - **Spring Initializr**:这是一个在线工具,可以帮助开发者快速生成Spring Boot项目的骨架代码。 - **...

    基于SpringBoot + Vue 的WebSocket联网五子棋项目源码

    该项目是一个使用SpringBoot后端框架和Vue前端框架构建的联网五子棋游戏,结合WebSocket实现实时的网络通信,提供玩家间即时对弈的功能。以下是该项目涉及的主要知识点: 1. **SpringBoot**: SpringBoot是Spring...

    基于SpringBoot的网上书店(源码+演示视频)

    本项目是一个基于SpringBoot框架构建的网上书店系统,它集成了常见的电商功能,包括用户管理、商品展示、购物车、订单处理等模块,旨在为开发者提供一个完整的、可快速上手的实战示例。通过学习和实践该项目,可以...

Global site tag (gtag.js) - Google Analytics