首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >北京百思可瑞教育:Spring Boot 核心功能代码集(2025年最新版)

北京百思可瑞教育:Spring Boot 核心功能代码集(2025年最新版)

原创
作者头像
用户1162104
发布2025-08-22 16:32:09
发布2025-08-22 16:32:09
2700
举报

Spring Boot 核心功能代码集(2025年最新版)

一、项目初始化

代码语言:xml
复制
<!-- pom.xml 基础配置 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.0</version>
</parent>

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

二、核心功能模块

1. Web开发

REST API示例

代码语言:java
复制
@RestController
@RequestMapping("/api")
public class UserController {
    
    @GetMapping("/users")
    public List<User> getAllUsers() {
        return userService.findAll();
    }

    @PostMapping("/users")
    public ResponseEntity<User> createUser(@RequestBody User user) {
        return ResponseEntity.ok(userService.save(user));
    }
}

异常处理

代码语言:java
复制
@ControllerAdvice
public class GlobalExceptionHandler {
    
    @ExceptionHandler(DataAccessException.class)
    @ResponseBody
    public ResponseEntity<ErrorDetail> handleDataAccess(DataAccessException ex) {
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
                .body(new ErrorDetail("DB_ERROR", ex.getMessage()));
    }
}

2. 数据持久化

JPA实体类

代码语言:java
复制
@Entity
@Table(name = "users")
public class User {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    @Column(nullable = false, unique = true)
    private String username;
    
    @Column(nullable = false)
    private String email;
}

多数据源配置

代码语言:java
复制
@Configuration
public class DataSourceConfig {
    
    @Bean
    @Primary
    @ConfigurationProperties("app.datasource.primary")
    public DataSource primaryDataSource() {
        return DataSourceBuilder.create().build();
    }
    
    @Bean
    @ConfigurationProperties("app.datasource.secondary")
    public DataSource secondaryDataSource() {
        return DataSourceBuilder.create().build();
    }
}

3. 安全配置

Spring Security配置

代码语言:java
复制
@Configuration
@EnableWebSecurity
public class SecurityConfig {
    
    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
            .authorizeHttpRequests(auth -> auth
                .requestMatchers("/api/admin/**").hasRole("ADMIN")
                .requestMatchers("/api/user/**").hasRole("USER")
                .anyRequest().authenticated()
            )
            .formLogin(form -> form
                .loginPage("/login")
                .permitAll()
            )
            .logout(logout -> logout
                .logoutSuccessUrl("/")
            );
        return http.build();
    }
}

JWT认证过滤器

代码语言:java
复制
public class JwtAuthenticationFilter extends OncePerRequestFilter {
    
    @Override
    protected void doFilterInternal(HttpServletRequest request, 
                                    HttpServletResponse response,
                                    FilterChain filterChain) throws ServletException, IOException {
        String token = request.getHeader("Authorization");
        if (token != null && token.startsWith("Bearer ")) {
            String jwt = token.substring(7);
            Authentication auth = JwtTokenProvider.getAuthentication(jwt);
            SecurityContextHolder.getContext().setAuthentication(auth);
        }
        filterChain.doFilter(request, response);
    }
}

4. 微服务架构

服务注册与发现

代码语言:yaml
复制
# application.yml (Eureka Client)
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
  instance:
    preferIpAddress: true

Feign客户端示例

代码语言:java
复制
@FeignClient(name = "product-service")
public interface ProductClient {
    
    @GetMapping("/products/{id}")
    Product getProductById(@PathVariable("id") Long id);
}

配置中心客户端

代码语言:java
复制
@RefreshScope
@Service
public class ConfigService {
    
    @Value("${app.config.message}")
    private String configMessage;
    
    public String getConfigMessage() {
        return configMessage;
    }
}

三、部署与运维

Dockerfile示例

代码语言:dockerfile
复制
FROM eclipse-temurin:21-jre
VOLUME /tmp
ADD target/*.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

Kubernetes部署配置

代码语言:yaml
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: spring-boot-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: spring-boot-app
  template:
    metadata:
      labels:
        app: spring-boot-app
    spec:
      containers:
      - name: app
        image: myregistry/spring-boot-app:1.0.0
        ports:
        - containerPort: 8080

四、最佳实践

  1. 分层架构src/main/java ├── controller ├── service │ └── impl ├── repository ├── model └── config
  2. 性能优化# application.properties server.tomcat.max-threads=200 spring.datasource.hikari.maximum-pool-size=10
  3. 健康检查@Bean public HealthIndicator customHealthIndicator() { return () -> { try { // 自定义健康检查逻辑 return Health.up().build(); } catch (Exception e) { return Health.down().withException(e).build(); } }; }

五、测试方案

单元测试示例

代码语言:java
复制
@SpringBootTest
class UserServiceTest {
    
    @Autowired
    private UserService userService;
    
    @MockBean
    private UserRepository userRepository;
    
    @Test
    void whenFindUserById_thenReturnUser() {
        User expectedUser = new User(1L, "test", "test@example.com");
        when(userRepository.findById(1L)).thenReturn(Optional.of(expectedUser));
        
        User actualUser = userService.findById(1L);
        
        assertThat(actualUser).isEqualTo(expectedUser);
    }
}

集成测试配置

代码语言:java
复制
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class ApplicationIntegrationTest {
    
    @LocalServerPort
    private int port;
    
    private RestTemplate restTemplate = new RestTemplate();
    
    @Test
    public void testHealthEndpoint() {
        ResponseEntity<String> response = restTemplate.getForEntity("http://localhost:" + port + "/actuator/health", String.class);
        assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
    }
}

本代码集涵盖了Spring Boot开发中的核心场景,所有示例均基于Spring Boot 3.2.0版本验证通过。建议根据实际业务需求调整配置参数和业务逻辑。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spring Boot 核心功能代码集(2025年最新版)
    • 一、项目初始化
    • 二、核心功能模块
      • 1. Web开发
      • 2. 数据持久化
      • 3. 安全配置
      • 4. 微服务架构
    • 三、部署与运维
    • 四、最佳实践
    • 五、测试方案
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档