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 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

Java面试系列19-Struts2

Struts2 (技术版本可能过低大家答题时换成最新的即可) 1 该案例包括首页,用户登陆、网站向导页面。就这么简单,没有深奥的struts概念,主要靠动手,然...

3166
来自专栏Java编程技术

SpringBoot之日志文件找不到

做新应用就是这样,会遇到各种问题,昨天刚解决了加载某一个类时候抛出了class is not visible from class loader的问题,今天就有...

501
来自专栏web开发

前端限制上传文件的类型

  今天在工作中遇到一个需求,需要在上传文件的时候限制上传文件的类型,比如上传图片的就只能上传图片类型的文件。 现将自己在开发中的代码放到我的博客里,以备在以后...

1976
来自专栏潇涧技术专栏

Gradle Plugin for Android Development User Guide 2

Gradle Plugin for Android Development User Guide (2)

651
来自专栏我是攻城师

Hadoop2.7.1和Hbase0.98添加LZO压缩

2747
来自专栏13blog.site

Spring+SpringMVC+MyBatis+easyUI整合基础篇(三)搭建步骤

作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载。 框架介绍 Spring...

2927
来自专栏Coding+

[转]如何初始化Java Web应用程序的log4j

原文:http://www.codejava.net/coding/how-to-initialize-log4j-for-java-web-applicati...

731
来自专栏熊二哥

FreeMarker快速入门

虽然当前比较推荐使用thymeleaf替代jsp作为java网页开发的模板语言,不过公司推荐使用freemarker,那就顺势而为,速度学一发,然后迅速开始新项...

1979
来自专栏xingoo, 一个梦想做发明家的程序员

TDDL与Spring Boot集成Version报错——跟踪与解决

先说背景:公司采用diamond+tddl,这套技术来做web管理。本人处于好奇率先体验了下spring-boot,于是就有了spring-boot+tddl...

2209
来自专栏Gaussic

使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理 顶

访问GitHub下载最新源码:https://github.com/gaussic/SpringMVCDemo

1482

扫码关注云+社区