第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Spring Boot企業(yè)級(jí)開(kāi)發(fā)教程:從入門(mén)到實(shí)踐

標(biāo)簽:
SpringBoot
概述

本文提供了Spring Boot企业级开发教程,涵盖从环境搭建到核心概念、数据访问技术、服务开发、安全认证及项目打包部署的全面指导。教程详细介绍了自动配置、起步依赖、RESTful API设计等关键知识点,并提供了丰富的示例代码。通过本文,开发者可以快速掌握Spring Boot企业级应用开发的要点和实践方法。

Spring Boot企业级开发教程:从入门到实践
Spring Boot简介与环境搭建

Spring Boot是什么

Spring Boot 是一个用于简化 Spring 应用程序开发的框架。它通过提供一套默认配置和自动配置来帮助开发者快速构建独立的、生产级别的应用。Spring Boot 的主要目标是减少 Spring 应用程序的配置,并通过约定优于配置的原则来简化开发流程。Spring Boot 可以适用于任何 Spring 应用,包括 Web 应用、批处理应用、微服务等。

开发环境搭建

在开始使用 Spring Boot 之前,需要确保你有以下开发工具和环境:

  • Java 开发工具包 (JDK):建议使用 JDK 1.8 及以上版本。
  • 集成开发环境 (IDE):推荐使用 IntelliJ IDEA 或 Eclipse。
  • 构建工具:Maven 或 Gradle。
  • 文本编辑器:可以使用任意文本编辑器,如 VS Code 或 Sublime Text。

第一个Spring Boot应用

创建一个新的 Spring Boot 项目可以通过 Spring Initializr 方便地完成。Spring Initializr 是一个在线工具,可以生成一个简单的 Spring Boot 应用起步项目。

步骤一:访问 Spring Initializr

访问 Spring Initializr 网站,选择生成项目的版本和依赖。

步骤二:配置项目基本信息

在配置页面中,填写项目的基本信息,如项目名、语言、依赖等。

步骤三:下载项目并导入到 IDE

下载生成的项目压缩包,解压后导入到你的 IDE 中。

步骤四:编写代码

src/main/java 目录下创建一个新的 Java 类 HelloWorldApplication.java

package com.example.demo;

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

@SpringBootApplication
public class HelloWorldApplication implements CommandLineRunner {

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

    @Override
    public void run(String... args) throws Exception {
        System.out.println("Hello World!");
    }
}

步骤五:运行项目

在 IDE 中运行 HelloWorldApplication 类,你应该能在控制台看到输出:Hello World!

Spring Boot核心概念与特性

自动配置

Spring Boot 通过自动配置机制来减少开发者手动配置 Spring 应用的需要。自动配置会根据类路径中的依赖关系自动配置 Spring 应用,并且大多数情况下不需要额外的配置。

示例代码

src/main/resources 目录下创建一个 application.properties 文件,并添加如下配置:

spring.application.name=HelloWorld

HelloWorldApplication.java 中添加以下注解和配置:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class HelloWorldApplication {

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

    @Bean
    public CommandLineRunner commandLineRunner() {
        return args -> {
            System.out.println("Application name: " + System.getenv("SPRING_APPLICATION_NAME"));
        };
    }
}

运行项目,控制台输出如下:

Application name: HelloWorld

依赖管理和起步依赖

Spring Boot 使用 Maven 和 Gradle 作为构建工具,通过起步依赖(Starter Dependencies)来简化依赖管理。起步依赖集成了常用的库和配置,开发者只需引入一个依赖即可获得所需的功能。

示例代码

pom.xml 文件中添加 spring-boot-starter-web 起步依赖:

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

配置文件与属性管理

Spring Boot 支持多种配置文件格式,包括 application.propertiesapplication.yml。这些配置文件可以用来管理应用的属性,如数据库配置、日志配置等。

示例代码

创建 application.properties 文件:

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root

创建 application.yml 文件:

spring:
  datasource:
  url: jdbc:mysql://localhost:3306/test
  username: root
  password: root

在代码中通过 @Value 注解读取配置:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloWorldApplication implements CommandLineRunner {

    @Value("${spring.datasource.url}")
    private String url;

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

    @Override
    public void run(String... args) throws Exception {
        System.out.println("Database URL: " + url);
    }
}

运行项目,控制台输出数据库 URL:

Database URL: jdbc:mysql://localhost:3306/test
Spring Boot数据访问技术

JPA与数据库操作

JPA(Java Persistence API)是 Java 平台中的一种持久化规范,Spring Boot 通过 JPA 实现了对数据库的访问。使用 JPA 可以简化数据库操作,如数据的增删改查等。

示例代码

创建一个简单的实体类 User

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    private String email;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

src/main/resources 目录下创建 application.properties 文件,配置数据库连接:

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=update

创建 UserRepository 接口:

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}

创建 UserController 控制器:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @GetMapping
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userRepository.save(user);
    }

    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable Long id) {
        userRepository.deleteById(id);
    }
}

创建 UserService 服务类:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    public User createUser(User user) {
        return userRepository.save(user);
    }

    public void deleteUser(Long id) {
        userRepository.deleteById(id);
    }
}

MyBatis集成与使用

MyBatis 是一个优秀的持久层框架,Spring Boot 可以通过 MyBatis Starter 来集成 MyBatis,从而实现对数据库的访问。

示例代码

pom.xml 文件中添加 mybatis-spring-boot-starter 依赖:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.3</version>
</dependency>

创建 UserMapper 接口:

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface UserMapper {

    @Insert("INSERT INTO user (name, email) VALUES (#{name}, #{email})")
    void insert(User user);

    @Select("SELECT * FROM user")
    List<User> findAll();
}

创建 UserController 控制器:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @GetMapping
    public List<User> getAllUsers() {
        return userMapper.findAll();
    }

    @PostMapping
    public void createUser(@RequestBody User user) {
        userMapper.insert(user);
    }
}

数据库连接池

Spring Boot 提供了多种数据库连接池的集成,如 HikariCP、Tomcat JDBC 等。通过配置连接池,可以提高应用的性能和稳定性。

示例代码

application.properties 文件中配置 HikariCP 连接池:

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=5

UserRepository 接口中声明连接池配置:

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}
Spring Boot服务开发

RESTful API设计

RESTful API 是基于 REST 架构风格的一种 Web 服务接口设计。Spring Boot 提供了丰富的注解和工具来帮助开发者设计和实现 RESTful API。

示例代码

创建 User 实体类:

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    private String email;

    // Getter and Setter methods
}

创建 UserController 控制器:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @GetMapping
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userRepository.save(user);
    }

    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userRepository.findById(id).orElse(null);
    }

    @PutMapping("/{id}")
    public User updateUser(@PathVariable Long id, @RequestBody User user) {
        user.setId(id);
        return userRepository.save(user);
    }

    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable Long id) {
        userRepository.deleteById(id);
    }
}

创建 UserService 服务类:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    public User createUser(User user) {
        return userRepository.save(user);
    }

    public User getUserById(Long id) {
        return userRepository.findById(id).orElse(null);
    }

    public User updateUser(Long id, User user) {
        user.setId(id);
        return userRepository.save(user);
    }

    public void deleteUser(Long id) {
        userRepository.deleteById(id);
    }
}

错误处理与异常管理

Spring Boot 提供了多种方式来处理错误和异常。常见的处理方式包括全局异常处理器和自定义错误响应。

示例代码

创建全局异常处理器 GlobalExceptionHandler

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(value = {Exception.class})
    @ResponseBody
    public ResponseEntity<String> handleException(Exception ex) {
        return new ResponseEntity<>("An error occurred: " + ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
    }
}
Spring Boot安全与认证

基本认证

基本认证是一种简单的认证方式,通过 HTTP 头中的 Base64 编码的用户名和密码来实现。

示例代码

src/main/resources 目录下创建 application.properties 文件:

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.security.user.name=admin
spring.security.user.password=admin
spring.security.user.roles=USER,ADMIN

创建安全配置类 SecurityConfig

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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.security.config.http.SessionCreationPolicy;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf().disable()
            .authorizeRequests()
            .antMatchers("/users").permitAll()
            .antMatchers("/users/**").authenticated()
            .and()
            .httpBasic();
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}

OAuth2与JWT

OAuth2 是一种授权协议,JWT 是一种安全的令牌格式。通过 OAuth2 和 JWT 可以实现更安全的认证机制。

示例代码

src/main/resources 目录下创建 application.properties 文件:

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.security.oauth2.client.client-id=client-id
spring.security.oauth2.client.client-secret=client-secret
spring.security.oauth2.client.scope=read,write
spring.security.oauth2.resourceserver.jwt.key-uri=https://localhost:8080/oauth/token_key

创建安全配置类 SecurityConfig

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
import org.springframework.security.oauth2.provider.token.TokenStore;
import org.springframework.security.oauth2.provider.token.store.JwtTokenStore;

@Configuration
@EnableResourceServer
public class SecurityConfig extends ResourceServerConfigurerAdapter {

    @Bean
    public TokenStore tokenStore() {
        return new JwtTokenStore();
    }
}

CSRF保护

CSRF(跨站请求伪造)是一种攻击方式,Spring Boot 提供了 CSRF 保护来防止这种攻击。

示例代码

SecurityConfig 类中启用 CSRF 保护:

import org.springframework.context.annotation.Configuration;
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;

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf().disable()
            .authorizeRequests()
            .antMatchers("/users").permitAll()
            .antMatchers("/users/**").authenticated()
            .and()
            .httpBasic();
    }
}
Spring Boot项目打包与部署

Maven与Gradle构建工具

Maven 和 Gradle 是两种常用的构建工具,它们可以用来管理项目依赖、编译代码、运行测试、打包应用等。

示例代码

pom.xml 文件中配置 Maven 项目:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

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

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

build.gradle 文件中配置 Gradle 项目:

plugins {
    id 'org.springframework.boot' version '2.3.1.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

打包与发布

在打包 Spring Boot 应用时,可以使用 Maven 或 Gradle 的插件来完成。以下是使用 Maven 打包应用的示例命令:

mvn clean package

生成的 jar 文件位于 target 目录下,可以直接运行:

java -jar target/demo-0.0.1-SNAPSHOT.jar

部署到云平台

部署到云平台时,可以将打包的 jar 文件上传到云平台并使用云平台的服务来运行应用。例如,使用 AWS Elastic Beanstalk 部署:

  1. 创建一个新的 AWS Elastic Beanstalk 环境。
  2. 将打包的 jar 文件上传到 Elastic Beanstalk 环境。
  3. 配置环境以运行 jar 文件。
总结

本文详细介绍了 Spring Boot 企业级应用开发的各个方面,包括环境搭建、核心概念、数据访问技术、服务开发、安全认证及项目打包部署。通过本文,开发者可以快速掌握 Spring Boot 企业级应用开发的关键要点和实践方法。

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消