spring-boot之入门实践

spring-boot是spring的一种微服务框架,spring-boot的出现是为了解决以往spring项目中xml文件繁琐的配置。具体介绍参考:http://docs.spring.io/spring-boot/docs/1.4.0.M2/reference/htmlsingle/

这里主要记录下spring-boot的简单应用:

spring-boot支持主流的构建工具,包括ant、maven、gradle等,这里使用maven。

首先创建一个maven web project,创建完之后,如下:

然后新建SampleController类,包含在hello package下,SampleController主要代码:

package hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@EnableAutoConfiguration
public class SampleController {

    @RequestMapping("/")
    @ResponseBody
    String home() {
        return "Hello World!";
    }
    
    public static void main(String[] args) throws Exception {
        SpringApplication.run(SampleController.class, args);
    }
}

其实基本的注解spring里都有,主要在main方法里,spring-boot直接嵌入 Tomcat 或 Jetty 服务器,调用run方法后直接启动相应容器,具体参考:http://www.ibm.com/developerworks/cn/java/j-lo-spring-boot/

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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.spring.test</groupId>
    <artifactId>SpringBootTest</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>SpringBootTest Maven Webapp</name>
    <url>http://localhost:8080/SpringBootTest</url>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.5.RELEASE</version>
        <relativePath />
    </parent>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

        <!-- http://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
        

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.0.2.RELEASE</version>
        </dependency>

    </dependencies>
    <build>
        <finalName>SpringBootTest</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>hello.SampleController</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

注意这里一定记得配置mainClass属性,否则启动后会报找不到主类错误。。。

完后命令行键入:mvn spring-boot:run,启动spring-boot,从而启动容器:

然后浏览器直接访问:

这样一个简答spring-boot应用就完了,踩过一个大坑,就是我启动run的时候一直报“找不到内嵌的tomcat容器”之类的错误,最后发现是pom.xml文件里的servlet-api版本给低了,修改后即可:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序猿DD

【译】Spring官方教程:Spring Boot整合消息中间件RabbitMQ

原文:Messaging with RabbitMQ 译者:chenzhijun 校对:程序猿DD 本篇指南会告诉您如何使用构建一个基于 AMQP协议的 Rab...

44180
来自专栏玩转JavaEE

初识Spring Boot框架

按:最近公众号文章主要是整理一些老文章,主要是个人CSDN上的博客,也会穿插一些新的技术点。 ---- 前面的铺垫文章已经连着写了六篇了,主要是介绍了Sprin...

40050
来自专栏battcn

一起来学SpringBoot | 第十二篇:初探RabbitMQ消息队列

MQ全称(MessageQueue)又名消息队列,是一种异步通讯的中间件。可以将它理解成邮局,发送者将消息传递到邮局,然后由邮局帮我们发送给具体的消息接收者(消...

13510
来自专栏ImportSource

Spring Boot 2.0 新特性和发展方向

以Java 8 为基准 Spring Boot 2.0 要求Java 版本必须8以上, Java 6 和 7 不再支持。 内嵌容器包结构调整 为了支持react...

45990
来自专栏世界第一语言是java

springcloud微服务实战:Eureka+Zuul+Feign/Ribbon+Hystrix Turbine+SpringConfig+sleuth+zipkin

72030
来自专栏程序猿DD

SpringBoot快速入门

简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么...

21280
来自专栏CodeSheep的技术分享

从SpringBoot到SpringMVC

用久了SpringBoot,深受其约定大于配置的便利性毒害之后,我想回归到SpringMVC时代,看看SpringMVC开发模式中用户是如何参与的。本文就来体验...

19180
来自专栏咸鱼不闲

简单才是美! SpringBoot+JPA

SpringBoot 急速构建项目,真的是用了才知道,搭配JPA作为持久层,一简到底! 下面记录项目的搭建,后续会添加NOSQL redis,搜索引擎elast...

13730
来自专栏java闲聊

SpringBoot 1.5.10.RELEASE学习SpringMvc+SpringData+thymeleaf

20450
来自专栏Java后端技术

使用Spring整合Quartz轻松完成定时任务

  上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步...

8930

扫码关注云+社区

领取腾讯云代金券