使用Spring boot 创建web工程

原文

利用Springboot新建一个web工程

方法有很多种,一种比较方便的方法就是直接访问Spring INITIALIZR,填好信息,然后Alt + Enter键直接生成即可。然后使用IDE(对不起我比较low)import刚才生成的项目,我是使用maven方式导入的。导入完之后进到pom.xml里面保存一下,maven就会自动地下载一些需要的包(写在dependency里面)…

之前的都是废话,是个人应该都会。创建项目还有一个重要的步骤就是定义项目结构,我参考照抄了Serving Web Content with Spring MVC ,然后采用MVC模式建立的工程.

Controller层

/src/main/java/com/ecnu/argiculture/userprofile/UserprofileApplication.java

package com.ecnu.argiculture.userprofile.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * Created by kuangjun on 9/6/17.
 */
@Controller
public class TryController {
        @RequestMapping("/index")
        public String index(@RequestParam(value="name",required=false,defaultValue="ECNUer") String name, Model model){
                model.addAttribute("name",name);
                return  "I don't know what to return";
        }

}

controller层可以理解为连接前后端的一层,它利用addAttribute的方式将后端的一些数据传送给前端. 其中,注解@Controller定义了该类是作为Controller. @RequestMapping确保当你在浏览器访问/index的地址时,对应的是index()这个方法

这里并没有指定HTTP方法(GET PUT POST etc.),这样默认就能使用所有的方法。当然,也可以使用@RequestMapping(method=GET)之类的来限定方法

@RequestParam将前段页面请求的String类型参数nameindex()方法中的name参数绑定,这个name参数的值并不是必须填写的(required = false),如果未填写的话,那么name的值就等于defaultValueECNUer 最后,通过model.addAttribute()name参数加入到Model对象中,以使得其能被页面获得

然后有一种叫做Thymeleaf的东西,可用于渲染XML/XHTML/HTML5,它可以与Spring MVC结合作为web应用的模板引擎. Thymeleaf的特点是它能够直接在浏览器中打开模板页面,而不需要重新启动web应用. 使用Thymeleaf的另一大好处就是可以进一步做到前后端分离,它通过属性进行渲染,不会引入任何浏览器不能识别的标签,因此不需要在应用服务器中渲染也可以看到页效果.

页面

上面已经实现了一个Controller,接下来希望可以有一些”看得见,摸得着”的东西,于是可以简单写一个页面

/src/main/resources/templates/index.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Home page</title>
    <meta http-equiv="Content-Type" content="text/html ; charset = UTF-8"/>
</head>
<body>
    <p th:text=" 'Hello', + ${name} + '!' "></p>
</body>
</html>

注意那个th: text

Spring-boot-devtools

通常来说,当我们修改代码后,想要查看效果,必须要重启应用,然后刷新页面,这个过程会耗费我们大量的时间(比如我们经常在这个时候看个视频玩个游戏啥的~~),于是Spring boot提供了一个叫做Spring-boot-devtools的模块,让我们没必要每次都重启一下应用(于是少了很多娱乐时间,万恶的资本主义),因为它会自动检测资源文件resourses的变动触发重启,这个重启速度比较快. 吧? 默认情况下有些文件的改变会导致重启,有些不会,这个也可以自己配置.反正有这么个东西可以实现热部署.

要使用Spring-boot-devtools,只要在pom.xml里面添加相关依赖即可

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

Application类

现在有了一个前段页面和controller层,启动应用就能看到页面了.于是得有个开关吧,Application类就相当于这个应用的开关,执行这个类就能启动程序. 当然Application类这个名字是我瞎编的,你叫它ABC类也可以..

/src/main/java/com/ecnu/argiculture/userprofile/UserprofileApplication.java

package com.ecnu.argiculture.userprofile;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class UserprofileApplication {

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

@SpringBootApplication是一种便捷地添加以下注解的方法:

  • @Configuration 告诉你这是一个配置类,你可以用某些xml配置达到同样的效果.
  • @EnableAutoConfiguration 告诉Springboot开始通过各类配置,加载对应的beans
  • @EnableWebMvc
  • @ComponentScan命令Spring扫描其他的组件、配置和服务,使其可以找到controllers

好了,接下来运行这个Application类,然后在浏览器输入localhost:8080/index,你就可以看到如下页面

如果你在浏览器中输入localhost:8080/index?name=常山赵子龙,就会得到以下界面

### 如何使用 Spring Boot 构建 Web 学生管理系统 #### 创建项目环境 为了启动并运行一个基于Spring Boot的学生管理系统,需要先准备好开发环境。确保已安装Java JDK、IDE(如Eclipse或IntelliJ IDEA),以及构建工具(Maven或Gradle)。这些软件的选择取决于个人偏好和团队标准[^2]。 #### 初始化 Spring Boot 项目 可以通过Spring Initializr在线服务快速初始化一个新的Spring Boot应用。选择所需的依赖项,比如`Spring Web`, `Thymeleaf`(作为模板引擎),以及其他可能需要用到的功能模块,例如数据库连接器等。下载生成的ZIP文件解压后导入到IDE中继续开发。 #### 配置数据源 对于学生管理系统而言,通常会涉及到与数据库交互的操作。因此,在项目的application.properties或application.yml配置文件里指定好所使用的数据库类型及其连接参数是非常重要的一步。这里假设采用MySQL数据库为例: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/student_management?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=password spring.jpa.hibernate.ddl-auto=update ``` 以上设置指定了访问本地MySQL实例的方式,并允许Hibernate自动更新表结构以匹配实体类定义[^1]。 #### 设计模型层 接下来设计表示学生的实体类Student.java: ```java @Entity public class Student { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private int age; // Getters and Setters... } ``` 此代码片段展示了如何通过JPA注解来映射对象关系至表格字段上。 #### 开发控制层 编写RESTful风格API接口供前端调用。下面给出的是一个简单的Controller例子: ```java @RestController @RequestMapping("/api/students") public class StudentController { @Autowired private StudentRepository studentRepo; @GetMapping("") public List<Student> getAllStudents() { return (List<Student>)studentRepo.findAll(); } @PostMapping("") public void addNewStudent(@RequestBody Student newStudent){ studentRepo.save(newStudent); } } ``` 上述方法实现了获取全部记录列表及新增单条记录两项基本功能。 #### 测试应用程序 完成编码之后就可以尝试编译整个工程并通过内置Tomcat服务器直接启动它来进行初步测试了。如果一切正常的话,则应该可以在浏览器地址栏输入http://localhost:8080/api/students看到返回JSON格式的数据集;而POST请求则可以用来验证添加新用户的逻辑是否正确实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值