学习SpringBoot心得体会

学习springboot学习总结

介绍springboot及总结性概述   

Spring Boot 是一个开源的 Java 开发框架,用于开发企业级的、独立的、可运行的应用程序。它简化了传统的 Java 开发流程,提供了一种快速构建应用程序的方式。

Spring Boot 的设计目标是使开发者能够轻松地构建和部署应用程序,它通过自动配置和约定大于配置的原则,减少了开发者的配置工作。Spring Boot 提供了一套默认的配置,几乎可以零配置就能运行应用程序,并且有许多可选的配置选项,可以根据实际需要进行配置。

Spring Boot 集成了流行的 Spring 框架和其他第三方库,如 Spring MVC(用于构建 Web 应用程序)、Spring Data(用于访问数据库)、Spring Security(用于身份认证和授权)等。它还提供了开箱即用的功能,如内嵌的服务器(如 Tomcat、Jetty)、健康检查、监控等。

总结来说,Spring Boot 是一个简化了传统 Java 开发流程的框架,它提供了一套默认的配置和快速构建应用程序的方式,使开发者能够更轻松地开发和部署应用程序。它集成了流行的 Spring 框架和其他第三方库,并提供了丰富的功能和可选的配置选项。

如图1.

图1.

介绍springboot这门课是什么?

  1. Spring Boot 的基本概念:了解 Spring Boot 的目标、优势和基本原理,以及如何使用 Spring Initializr 来初始化一个 Spring Boot 项目。

以下是初始化创建

  1. 自动配置和起步依赖:学习如何利用 Spring Boot 的自动配置功能,减少手动配置的工作量。同时,了解起步依赖的概念和使用方法,它们是预先配置好的依赖项集合,帮助你快速构建项目。

图下是配置依赖 点击刷新

  1. Web 开发:学习如何使用 Spring Boot 进行 Web 开发,包括创建控制器、处理请求和响应、使用模板引擎生成动态视图等。
  2. 4. 数据访问:了解如何使用 Spring Boot 连接和操作数据库,包括使用 JPA、Hibernate、Spring Data JPA 等进行数据持久化。

使用 Spring Boot 连接和操作数据库可以借助于多种持久化框架,包括 JPA、Hibernate 和 Spring Data JPA。下面是一个简单的步骤指南:

添加依赖:在你的 Spring Boot 项目的 pom.xml(如果使用 Maven)或 build.gradle(如果使用 Gradle)文件中,添加对数据访问框架的依赖。例如,如果你要使用 Spring Data JPA,可以添加以下依赖:

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-data-jpa</artifactId></dependency>

配置数据库连接:在 application.properties(或 application.yml)文件中,配置数据库连接参数,如数据库URL、用户名、密码等。例如:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb

spring.datasource.username=root

spring.datasource.password=123456

创建实体类:创建你的实体类,使用注解方式标记表名、字段等。例如:

@Entity@Table(name = "users")public class User {

    @Id

    @GeneratedValue(strategy = GenerationType.IDENTITY)

    private Long id;

    

    private String name;

    private String email;

    // ...}

创建数据访问接口:创建一个继承自 JpaRepository(或其他 Spring Data 提供的接口)的接口,用于对实体类进行数据库操作。例如:

public interface UserRepository extends JpaRepository<User, Long> {

    // 自定义查询方法

    List<User> findByEmail(String email);}

使用数据访问接口:在你的服务类或控制器中,注入你的数据访问接口,然后使用该接口进行数据持久化操作。例如:

@Servicepublic class UserService {

    private UserRepository userRepository;

    

    @Autowired

    public UserService(UserRepository userRepository) {

        this.userRepository = userRepository;

    }

    

    public User saveUser(User user) {

        return userRepository.save(user);

    }

    

    public List<User> getUsersByEmail(String email) {

        return userRepository.findByEmail(email);

    }}

通过以上步骤,你可以使用 JPA、Hibernate 和 Spring Data JPA 进行数据库持久化操作。Spring Boot 会自动根据配置和代码规则进行数据库连接和表结构的创建和更新。

当然,上述内容只是一个简单的入门指南,实际使用中可能还需要更多的配置和处理。你可以参考 Spring Boot 的官方文档以及相关教程和示例代码来深入学习和应用数据库持久化。

  1. 安全性与认证:学习如何使用 Spring Security 来保护应用程序,并进行用户认证和授权。

使用 Spring Security 来保护应用程序并进行用户认证和授权是非常常见的需求。下面是一个基本的步骤指南:

1. 添加依赖:在你的 Spring Boot 项目的 `pom.xml`(如果使用 Maven)或 `build.gradle`(如果使用 Gradle)文件中,添加对 Spring Security 的依赖。例如:

   ```xml

   <dependency>

       <groupId>org.springframework.boot</groupId>

       <artifactId>spring-boot-starter-security</artifactId>

   </dependency>

   ```

2. 配置用户认证:默认情况下,Spring Security 使用基于内存的用户认证。你可以在 `application.properties`(或 `application.yml`)文件中,配置用户名、密码和角色信息。例如:

   ```properties

   spring.security.user.name=admin

   spring.security.user.password=123456

   spring.security.user.roles=ADMIN

   ```

   如果你需要更复杂的用户存储和认证方式,例如使用数据库来存储用户信息,你可以实现 `UserDetailsService` 接口,并自定义认证逻辑。

3. 安全配置类:创建一个类,继承自 `WebSecurityConfigurerAdapter`,用于配置 Spring Security 的行为。例如:

   ```java

   @Configuration

   @EnableWebSecurity

   public class SecurityConfig extends WebSecurityConfigurerAdapter {

       @Override

       protected void configure(HttpSecurity http) throws Exception {

           http

               .authorizeRequests()

                   .antMatchers("/public/**").permitAll()

                   .antMatchers("/admin/**").hasRole("ADMIN")

                   .anyRequest().authenticated()

                   .and()

               .formLogin()

                   .and()

               .logout()

                   .logoutUrl("/logout")

                   .logoutSuccessUrl("/login");

       }

   }

   ```

   这个配置类允许公共路径 `/public/**` 的访问,对于路径 `/admin/**` 的访问需要拥有 "ADMIN" 角色,其他路径需要进行认证。同时,使用默认的表单登录和注销行为。

4. 自定义认证提供者(可选):如果你需要更复杂的用户认证逻辑,你可以实现 `AuthenticationProvider` 接口,并在配置类中配置它。

5. 使用安全注解(可选):如果你希望在你的控制器或服务方法上使用注解进行细粒度的授权控制,你可以在配置类中启用安全注解支持。例如:

   ```java

   @Configuration

   @EnableWebSecurity

   @EnableGlobalMethodSecurity(prePostEnabled = true)

   public class SecurityConfig extends WebSecurityConfigurerAdapter {

       // ...

   }

   ```

   然后,在你的控制器或服务方法上使用 `@PreAuthorize`、`@Secured` 等注解进行授权控制。

以上是使用 Spring Security 进行应用程序保护、用户认证和授权的基本步骤。当然,实际使用中可能会有更多的配置和复杂的需求。你可以参考 Spring Security 的官方文档以及相关教程和示例代码来深入学习和应用安全保护。

6. 微服务和云原生开发:了解如何使用 Spring Cloud 构建和管理微服务架构,包括服务注册与发现、负载均衡、配置中心等。

7. 测试和部署:学习如何编写单元测试、集成测试和端到端测试,并掌握如何将 Spring Boot 应用程序部署到云平台或容器中。

同时,Spring Boot 还有许多其他功能和扩展,比如异步编程、缓存、消息队列等,你可以根据自己的需求深入学习和应用。通过学习 Spring Boot,你将成为一个熟练的 Java 开发者,并能够快速构建可靠的企业级应用程序。

将jar包部署到云服务器上面

在项目中直接双击点击maven里面的package

当控制台输出创建成功以后找到target目录下面打好的jar包

然后找到jar包所在的文件目录,将该jar包放到服务器里面的apache-tomcat-8.5.82目录里面的webapps

打开安全组开放访问端口

服务器里面建立数据库

 通过学习springboot我能够更快速、更高效地开发和部署 Spring 应用程序,并且能够应对复杂的业务需求和技术挑战。同时,你还将掌握一些与 Spring 相关的最佳实践和设计模式

简单的叙述学习过程

学习 Spring 和 Java 基础知识:在学习 Spring Boot 之前,建议先对 Spring Framework 和 Java 编程有一定的基础了解。这包括理解 Spring 的核心概念(如依赖注入、控制反转、面向切面编程等)以及熟悉 Java 的语法和基础开发。

确定学习资源和书籍:Spring Boot 有丰富的学习资源和书籍可供参考,包括官方文档、教程、博客文章和书籍。你可以从官方文档 (https://spring.io/projects/spring-boot) 开始,掌握 Spring Boot 的核心概念和功能。另外,推荐一些著名的 Spring Boot 书籍,如《Spring Boot 实战》等。

完成入门示例:通过编写一些简单的 Spring Boot 示例来熟悉框架的基本用法。可以使用 Spring Initializr (https://start.spring.io/) 创建一个新的 Spring Boot 项目,并根据需要选择所需的依赖。然后,编写一些简单的控制器、服务和配置类,运行并测试你的应用程序。

深入学习核心特性:学习 Spring Boot 的核心特性和功能,如自动配置、起步依赖、外部化配置、日志记录、跨域支持、数据访问、安全性等。掌握这些概念和用法将为你开发复杂的应用程序提供强大的基础。

实践项目开发:通过实际的项目开发来应用你所学的 Spring Boot 知识。选择一个小型的项目或自己的想法,尝试使用 Spring Boot 来构建一个完整的应用程序。这个过程中,你将面临真实的问题和挑战,同时也会加深对 Spring Boot 的理解和应用。

阅读源码和文档:对于深入学习和解决更复杂问题,你可以阅读 Spring Boot 的源码和详细文档。这将帮助你更好地理解框架的内部工作原理和高级特性。

社区交流和实践:参与 Spring Boot 的社区交流和实践,如加入论坛、参与技术讨论、阅读博客和学习资源。与其他开发人员分享经验和问题,并从他们的经验中学习。

然后直接去浏览器中输入服务器的地址+端口号+xx.html

如果你输入java -jar xxx.jar命令以后,在我箭头的那个位置报了一个错误:

Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is org.springframework.boot.web.server.PortInUseException: Port 8080 is already in use

他表示当前项目的这个端口已经被占用,那么这个时候我们就要找到占用该端口的进程:

netstat -anp | grep "端口号"

找到listen后面的端口,然后关闭该端口就行了:

kill -9 "端口号"

然后再去执行项目就可以了,再说一下可能你在运行项目的时候控制台报这样一个错误:

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/atguigu/mr/wordcount/WcDriver has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0

他表示服务器上的jdk版本与Windows的jdk版本不一致,解决这个问题只需要在pom.xml文件中输入下面的配置就可以了:

<!--JDK配置  -->

<properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <maven.compiler.source>8</maven.compiler.source>

    <maven.compiler.target>8</maven.compiler.target>

    <spring.version>4.0.0.RELEASE</spring.version>

</properties>

记得将你之前的<properties>删掉

一次性运行的缺点是在关闭终端或者退出运行项目以后,服务器就不能访问了。

永久访问

命令:

nohup java -jar xxx.jar &

&:指在后台运行;

nohup:不挂断的运行;

他执行以后会生成一个nohup.out的文件,该文件是项目执行的日志文件,在该文件中可以查看程序的执行情况(用vim命令打开日志文件)。

学习 Spring Boot 是一项非常有意义和有价值的任务。下面是一些学习 Spring Boot 的心得体会:

1. 简化开发流程:Spring Boot 的设计理念是“约定优于配置”,它提供了许多默认的配置和自动化的功能,可以极大地简化应用程序的开发流程。借助 Spring Boot,开发者可以快速地创建、配置和运行应用程序,减少了手动配置和脚手架代码的工作量。

2. 提高生产力:Spring Boot 提供了大量的起步依赖,封装了常用的库和框架,让开发者可以更轻松地集成和使用它们。这样,开发者可以专注于业务逻辑的实现,而无需过多关注依赖库的配置和集成问题,从而提高了开发的效率和生产力。

3. 强大的社区支持:Spring Boot 拥有一个庞大的社区,提供了丰富的学习资源、教程、示例代码和解决方案。无论是在官方文档、论坛、博客还是开源项目,都能找到很多有用的信息和经验分享。这使得学习和解决问题变得更加容易和高效。

4. 灵活的扩展性:Spring Boot 架构上是基于 Spring Framework 的,这意味着你可以灵活地使用 Spring 的各种功能和扩展。通过自定义配置、编写自定义的组件和插件,可以按需扩展和定制 Spring Boot 应用程序,以满足不同的业务需求和技术挑战。

5. 微服务和云原生支持:Spring Boot 在构建微服务架构和云原生应用方面表现出色。它与 Spring Cloud 的集成使得开发者能够轻松构建和管理分布式系统,并使用常见的云平台(如 AWS、Azure、Google Cloud)进行部署和扩展。

总的来说,学习 Spring Boot 可以让开发者更快速、高效地开发应用程序,并提供了广泛的支持和工具来应对不同的开发需求。通过深入理解 Spring Boot 的核心概念和特性,我们可以更好地掌握 Spring 生态系统,进一步提升自己的技术水平

和软件开

发能力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值