先從Spring Boot開始,先寫出一個運作的版本

添加备注

根据kazuki43zoo先生的评论,使用新版本的Spring Boot(1.3.3.RELEASE)和SPRING INITIALIZR,似乎可以轻松创建一个可以运行的项目,而无需担心本文所提到的繁琐问题。

请原谅我,我无意冒犯你。我真心希望我们可以解决这个问题,重建我们之间的友谊。如果你愿意,我愿意道歉并努力改正我的错误。

以其著名的Java框架之一Spring为例,其中的Spring Boot可快速创建Web应用程序。
由于其广泛使用,搜索一下就可以找到各种各样的信息,但对于像我这样技术不太好的工程师来说,即使被说成简单,也很难做到。
因此,在考虑到我遇到的问题的基础上,我将提供创建一个基本运行的应用程序所需的信息。
运行中的源代码可以在此链接找到:https://github.com/heiwa/spring-boot-template

开发环境

我将用Maven和Spring Boot进行开发。
* Spring版本:1.0.2-RELEASE
* Maven版本:3.3.3
尽管我使用的是Mac,但我认为环境差异应该很小。

文件目录结构

SampleApp
  ├ src
    ├ main
      ├ java
        └ heiwa.spring.sample
          ├ controller
            └ SampleController.java
          └ App.java
      └ resources
        └ templates
          └ hello.html
    └ test  //省略
  └ pom.xml

在App.java中,有一个主要的方法,它是一个使用Spring Boot启动的Web应用程序的启动类。
SampleController是一个控制器,它返回一个以hello.html为模板的页面。

pom的配置

首先,需要在中文中描述使用Spring Boot的哪个版本。

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

添加一下依存关系。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

上述是使用Spring Boot所需的必要依赖,而下述则是在使用thymeleaf作为模板时所需的依赖。
虽然可以使用jsp等模板,但是Spring推荐使用thymeleaf等类似的模板,所以我们会使用thymeleaf。进入他人的地方,就要遵循当地的规矩。

创建一个启动类

我要创建一个App.java文件。

@Controller
@ComponentScan
@EnableAutoConfiguration
public class App {

    @RequestMapping("/")
    @ResponseBody
    public String home() {
        return "Hello, Spring Boot!";
    }

    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

请将import处理好。由于添加@EnableAutoConfiguration,因此Spring Boot会帮我们处理很多事情,所以我们要添加它。然后,在main方法中调用SpringApplication.run,就可以启动Spring Boot的Web应用。很简单吧!

通过加上 @Controller 注解,表明该类是一个控制器类。然后,对于任意的方法,加上 @RequestMapping 注解,它将帮我们将该方法与指定的URL进行映射。在上述情况中,当连接到 localhost:8080/ 时,将调用home方法。在home方法上加上@ResponseBody注解,将返回的字符串作为响应体返回给客户端。

现在,我们至少得到了一个能够回应的东西!让我们来试一试吧!

开动

在项目根目录下运行maven命令。
mvn clean package spring-boot:run
在浏览器中访问http://localhost:8080/,会返回”Hello, Spring Boot!”。

添加控制器

首先,在App.java文件中添加没有在上面解释的@ComponentScan注解。这样,它将扫描该包及其以下的类,并添加组件。这对于添加创建的控制器类是必要的。

@Controller
public class SampleController {

    @RequestMapping("hello")
    public String hello(Model model) {
        model.addAttribute("hello", "Hello, spring");
        return "hello";
    }
}

在刚才创建的类中,同样添加 @Controller 注解。这样一来,它就会将该类添加为一个控制器。然后,通过 @RequestMapping 注解来指定映射。

使用模板作出回应

这次会返回使用模板的响应。
在控制器的方法中,以Model类的参数为入口,将必要的模板信息添加到其中。
返回值将返回模板文件的路径。例如,在上述示例中,返回的是hello,因此指定的是resources/templates/hello.html。
(模板的默认存放位置在templates下面。)

<!-- hello.html -->
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8" />
    <title>page title</title>
</head>
<body>
    <span th:text="${hello + ' world'}"></span>
</body>
</html>

我们可以通过在最开始的中声明使用thymeleaf标签,并且像这样使用。

使用这个,可以返回使用模板的响应。

总结

    • クラスにアノテーションを付けていくだけでウェブアプリが作成できる

 

    • デフォルトに気をつける

mainメソッドがあるクラスは一つにする(複数ある場合は指定が必要)
テンプレートの配置場所はtemplates以下
起動クラスしか見ない(必要なら@ComponentScan を付ける)

广告
将在 10 秒后关闭
bannerAds