Spring实现加法计算器和用户登录

在现代软件开发中,Spring框架因其灵活性和强大的功能而广受欢迎。本文将通过创建一个简单的加法计算器和用户登录功能,来展示Spring框架的基本应用。

项目结构

我们将创建一个简单的Spring Boot应用程序,项目结构大致如下:

spring-calculator
│
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── example
│   │   │           └── calculator
│   │   │               ├── CalculatorController.java
│   │   │               ├── LoginController.java
│   │   │               └── SpringCalculatorApplication.java
│   │   └── resources
│   │       └── application.properties
│   └── test
└── pom.xml

依赖

pom.xml文件中,我们需要引入Spring Boot的相关依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

加法计算器

首先,我们实现一个简单的加法计算器。我们将在CalculatorController.java中编写以下代码:

package com.example.calculator;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class CalculatorController {

    @GetMapping("/add")
    public String add(@RequestParam int a, @RequestParam int b) {
        int sum = a + b;
        return "结果: " + sum;
    }
}

上面的代码定义了一个RESTful API /add,接受两个整数参数 ab,返回它们的和。

用户登录

接下来,我们实现一个简单的用户登录功能。在LoginController.java中,我们可以使用Spring Security来处理用户验证:

package com.example.calculator;

import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@EnableWebSecurity
public class LoginController extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .antMatchers("/login").permitAll()
            .anyRequest().authenticated()
            .and()
            .formLogin()
            .loginPage("/login")
            .permitAll()
            .and()
            .logout()
            .permitAll();
    }

    @PostMapping("/login")
    public String login(@RequestParam String username, @RequestParam String password) {
        // 实际场景中,应通过数据库验证用户
        if ("admin".equals(username) && "password".equals(password)) {
            return "登录成功";
        } else {
            return "登录失败";
        }
    }
}

在上面的代码中,我们配置了Spring Security,允许任何用户访问/login页面,并要求认证以访问其他资源。同时,我们定义了一个简单的登录处理逻辑,接受用户名和密码作为输入。

主应用程序

最后,我们在SpringCalculatorApplication.java中启动我们的Spring Boot应用:

package com.example.calculator;

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

@SpringBootApplication
public class SpringCalculatorApplication {

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

运行和测试

现在,我们可以运行我们的Spring Boot应用了。通过访问以下URL来测试功能: 1. 加法计算器:http://localhost:8080/add?a=5&b=10 2. 用户登录:http://localhost:8080/login

在用户登录页面,输入用户名密码(如 "admin" 和 "password")进行测试。

结语

通过以上步骤,我们实现了一个简单的加法计算器和用户登录功能。这些功能展示了Spring Boot的强大能力,同时也为今后的项目开发打下了基础。可以根据具体需求进一步扩展和优化这些功能,例如使用数据库存储用户信息、实现更复杂的计算等。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部