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
,接受两个整数参数 a
和 b
,返回它们的和。
用户登录
接下来,我们实现一个简单的用户登录功能。在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的强大能力,同时也为今后的项目开发打下了基础。可以根据具体需求进一步扩展和优化这些功能,例如使用数据库存储用户信息、实现更复杂的计算等。