Day39 Springboot Spring框架

Spring框架的导入

想要使用Spring框架需要导入Spring的插件

选择对应的插件位置,然后再重启IDEA即可

创建spring项目时选择spring,选择

之后的操作是设置自己项目的名称,之后选择web项目

 之后就创建该项目即可

进入到项目中之后,该项目的底层还是一个maven项目,等待其自动加载maven所需要的依赖包,若等待其下载时间过长或者下载失败,则需要进入setting中搜索maven检查maven的路径配置是否出现问题,若maven配置没有问题,但依然失败,则可以刷新maven,或者删除maven存放下载包的文件夹repository中的所有内容,刷新让其重新下载。

SpringBoot的使用

spring项目下的src中有两个文件夹java和resources

Java:用于存放书写的的代码内容,其中有一个自动生成的Java文件Application,这是用于启动spring项目的Java文件,运行该文件就表示启动了一个spring项目,该项目不会自动停止,需要手动停止具体的项目内容需要自己去重新创建Java文件书写

resources:这是用来存放设计前端页面代码和配置文件的目录

Spring boot自动实现前后端的交互

实现方式:使用注解的方式实现前后端的交互

后端的数据传给前端,前端的数据返回给后端

spring会自动扫描包下面的所有类,如果这个类上有注解,Spring会通过反射创建当前类的对象(即做一个实例化的创建),同理若是方法上有注解则会将该方法绑定到一个地址上

@RestController:默认该类映射数据

@Controller:返回值默认只能映射页面,使用ResponseBody可以返回数据

@ResponseBody:表示方法返回的是数据,而不是一个页面

使用上述三种注解简单做一个登录页面:

首先简单设置前端的代码

关于前端代码需要在resources文件夹中的tempplates中创建一个login.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登陆</title>
</head>
<body>
    <form action="/user/login" method="get">
        用户名:<input type="text" name="username"> <br>
        密码:<input type="password" name="password">
        <input type="submit" value="登录">
    </form>
</body>
</html>

上述代码中创建了两个文本框和一个按钮

form行表示当点击登录按钮后跳转到所绑定地址的页面中

设置跳转页面的代码在Java中创建一个文件HtmlController

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class UserController {
 public UserController() {
        System.out.println("UserController已经在执行");
    }
    @GetMapping("/user/loginInfo")
    public String loginInfo() {
        return "login";
    }
    @GetMapping("/user/login")
    @ResponseBody
    public String login(String username,String password){
        if(username.equals("root") && password.equals("123456")) {
//    这里设置用户名为root,密码为123456
            return "登录成功,接收到数据为:" + username + "-----" + password;
        }else{
            return "登录失败,用户名或密码填写错误:" + username + "-----" + password;
        }
    }
}

代码解析:

构造方法:使得更明确地显示该类已经成功执行,加入一个构造方法,由于springboot会自动通过反射创建该类的实例化对象,而对象的创建又是通过构造方法来创建的,所以在创建该对象时会自动使用该构造方法从而执行其中的内容

loginInfo方法:该方法有一个标识为/user/loginInfo,使得在运行后,输入该标识可以执行其中的内容使其返回一个login,但是该方法中的内容只是返回一个字符串login

想要让其返回刚设计的前端页面login.xml,需要在resources中的application.properties配置文件中配置两个变量

spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html

 这两个变量的设置完成之后会使得在执行loginInfo方法时,返回值不会再返回一个字符串,而是在当前项目中寻找一个页面,名称为login

@Controller:该注解所绑定该类的地址为localhost

login方法:上述前端页面点击登录后所跳转到的页面,使用@GetMapping为该方法添加一个标识使前端代码中所跳转的地址与该地址相同,但是由于只是做一个简单的反馈,所以这里输出的是一串数据而不是一个页面,所以方法上设置为@ResponseBody表示返回一个数据,返回登录成功和登录失败。

运行结果:运行Application文件后,在IDEA中可以看到该类已经成功执行

进入到浏览器中,输入localhost:8080/user/loginInfo,按下回车,会出现所设计的前端页面

 

 输入一个成功的用户名和密码,按下回车

 

 输入一个错误的用户名和密码

 

 注意:由于Controller和RestController之间的区别,一般情况下使用Controller,因为使用Controller可以实现返回数据和页面,只不过在实现返回数据时在所要返回数据的方法上加入一个ResponseBody注解即可,而RestController只能返回数据,不能返回页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值