首页 > 其他分享 >SpringBoot enter door基础_配springBoot项目,读取配置,配置全局异常捕获

SpringBoot enter door基础_配springBoot项目,读取配置,配置全局异常捕获

时间:2024-01-15 10:23:17浏览次数:27  
标签:读取 door springboot Spring bean enter 注解 guide springBoot

1、Spring 是重量级企业开发框架 Enterprise JavaBean(EJB) 的替代品,Spring 为企业级 Java 开发提供了一种相对简单的方法,通过 依赖注入 和 面向切面编程 ,用简单的 Java 对象(Plain Old Java Object,POJO) 实现了 EJB 的功能

虽然 Spring 的组件代码是轻量级的,但它的配置却是重量级的(需要大量 XML 配置) 。

从本质上来说,Spring Boot 就是 Spring,它做了那些没有它你自己也会去做的 Spring Bean 配置。

Spring Framework 旨在简化 J2EE 企业应用程序开发。Spring Boot Framework 旨在简化 Spring 开发。

 

https://github.com/CodingDocs/springboot-guide/blob/master/docs/start/springboot-hello-world.md

2、你可以通过 https://start.spring.io/ 这个网站来生成一个 Spring Boot 的项目。注意勾选上 Spring Web 这个模块,这是我们所必需的一个依赖

你也可以直接通过 IDEA 来生成一个 Spring Boot 的项目,具体方法和上面类似:File->New->Project->Spring Initializr。

 

 

3、可以看出大概可以把 @SpringBootApplication看作是 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解的集合。根据 SpringBoot 官网,这三个注解的作用分别是:

  • @EnableAutoConfiguration:启用 SpringBoot 的自动配置机制
  • @ComponentScan: 扫描被@Component (@Service,@Controller)注解的 bean,注解默认会扫描该类所在的包下所有的类。
  • @Configuration:允许在上下文中注册额外的 bean 或导入其他配置类。
  4、新建一个 Controller

上面说了这么多,我们现在正式开始写 Spring Boot 版的 “Hello World” 吧。

新建一个 controller 文件夹,并在这个文件夹下新建一个名字叫做 HelloWorldController 的类。

@RestController是 Spring 4 之后新加的注解,如果在 Spring4 之前开发 RESTful Web 服务的话,你需要使用@Controller 并结合@ResponseBody注解,也就是说@Controller +@ResponseBody= @RestController。对

 

5、默认情况下,Spring Boot 项目会使用 8080 作为项目的端口号。如果我们修改端口号的话,非常简单,直接修改

application.properties配置文件即可。

src/main/resources/application.properties

server.port=8333
大功告成,运行项目   6、Spring 如何优雅读取配置文件? 1、使用 @Value("${property}") 读取比较简单的配置信息:

2、通过@ConfigurationProperties读取并与 bean 绑定

LibraryProperties 类上加了 @Component 注解,我们可以像使用普通 bean 一样将其注入到类中使用。

3、通过@ConfigurationProperties读取并校验

ProfileProperties 类没有加 @Component 注解。我们在我们要使用ProfileProperties 的地方使用@EnableConfigurationProperties注册我们的配置bean(这也说明我们的bean还是要注册,即要么加@Component等注解,要么@EnableConfigurationProperties等如@EnableConfigurationProperties(ProfileProperties.class)

 

4.@PropertySource读取指定 properties 文件

如:@PropertySource("classpath:website.properties") Spring 读取配置文件也是有优先级的

 springboot-guide/docs/basis/read-config-properties.md at master · CodingDocs/springboot-guide (github.com)

 

InitializingBean-CSDN博客

7、注意:读取配置文件是生成bean,下面初始化方法代表生成后指定的动作

1、Spring为bean提供了两种初始化bean的方式,实现InitializingBean接口,实现afterPropertiesSet方法,或者在配置文件中通过init-method指定,两种方式可以同时使用。

2、实现InitializingBean接口是直接调用afterPropertiesSet方法,比通过反射调用init-method指定的方法效率要高一点,但是init-method方式消除了对spring的依赖。

3、如果调用afterPropertiesSet方法时出错,则不调用init-method指定的方法。

  springboot-guide/docs/advanced/springboot-handle-exception.md at master · CodingDocs/springboot-guide (github.com)

8、本文主要讲了 四 种捕获处理异常的方式:

  1. 使用 @ControllerAdvice 和 @ExceptionHandler 处理全局异常
  2. @ExceptionHandler 处理 Controller 级别的异常
  3. 通过 ResponseStatus注解简单处理异常的方法(将异常映射为状态码)
  4. ResponseStatusException
或者用这个作者想到的:springboot-guide/docs/advanced/springboot-handle-exception-plus.md at master · CodingDocs/springboot-guide (github.com) 如上这个,controller抛异常-》GlobalExceptionHandler全局捕获异常(这个异常就是ResourceNotFoundException继承BaseException,并且传了个ErrorCode进行初始化exception),然后在方法里面返回
ErrorReponse,并且参数就是BaseException用来初始化返回体,总的
  Hibernate不是过时了么?SpringDataJpa又是什么?和Mybatis有什么区别?_springmvc hibernate 是否过时-CSDN博客 Mybatis-plus虽然也可以但是对于Spring-Data-Jpa全自动的ORM来看,对于简单的业务显得没有Spring-Data-Jpa那么方便 我们可以认为JPA是标准,事实上也是,JPA几乎都是接口,实现都是Hibernate在做,宏观上面看,在JPA的统一之下Hibernate很良好的运行。 在使用持久化工具的时候,一般都有一个对象来操作数据库,在原生的Hibernate中叫做Session,在JPA中叫做EntityManager,在MyBatis中叫做SqlSession,通过这个对象来操作数据库。  

标签:读取,door,springboot,Spring,bean,enter,注解,guide,springBoot
From: https://www.cnblogs.com/lengsong/p/17964815

相关文章

  • SpringBoot集成Kafka构建消息系统
    一、前言在我们当前的互联网应用中,消息驱动已经成为一种不可或缺的模式,Kafka作为一款高性能的分布式消息系统,已经成为很多公司在消息驱动架构选择中很重要的工具。我们使用SpringBoot和Kafka快速构建消息驱动应用,应对高并发的消息处理业务。Kafka是分布式发布-订阅消息系统。主要特......
  • 基于SpringBoot+Vue的OA办公系统设计实现(源码+lw+部署文档+讲解等)
    (文章目录)前言:heartpulse:博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌:heartpulse:......
  • 人脸识别系统【从0到1完成一个小项目】【6】【springboot快速上手】
    1.父类在pom.xml里面添加如上代码,有些会自动生成,没有生成的添加一下<parent><artifactId>spring-boot-starter-parent</artifactId><groupId>org.springframework.boot</groupId><version>2.7.6</version></parent>......
  • SpringBoot集成Jackson实现JSON序列化
    一、前言Jackson是一个在Java中常用的JSON序列化和反序列化库,它具有操作简单、性能优秀、支持多种数据格式等特点,被广泛应用于各种服务端开发中。SpringMVC框架的默认json解析器也是Jackson。当前常见的json解析器还有Gson、fastjson等,jackson的优势是解析大的json文件处理速度快,运......
  • Center-based 3D Object Detection and Tracking
    zotero-key:A37ALEJ3zt-attachments:-"280"title:Center-based3DObjectDetectionandTrackingcitekey:yinCenterbased3DObject2021tags:-paperCenter-based3DObjectDetectionandTrackingZoteroAbstractThree-dimensionalobjectsare......
  • springboot mybatis postgres 对于json类型的字段转换
    在SpringBoot与MyBatis结合使用时,处理PostgreSQL中的JSON类型字段的转换可以分为以下步骤:自定义TypeHandler:为了在Java实体类与数据库的JSON类型字段之间进行转换,需要创建一个自定义的 TypeHandler。例如,针对JSONObject类型的转换器可以这样实现:importorg.apache.ibatis.type.B......
  • 手拉手Springboot获取yml配置文件信息
    环境介绍技术栈springboot3软件版本mysql8IDEAIntelliJIDEA2022.2.1JDK17SpringBoot3.1.7配置文件说明:启动配置文件优先级:properties高于yml配置文件application.ymlyml是JSON的超集,简洁而强大,是一种专门用来书写配置文件的语言,可以替代application.properties。在创建一个S......
  • 基于SpringBoot+Vue的居家养老系统设计实现(源码+lw+部署文档+讲解等)
    (文章目录)前言:heartpulse:博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌:heartpulse:......
  • 蚂蚁爱购--靠谱的SpringBoot项目
    ​简介这是一个靠谱的SpringBoot项目实战,名字叫蚂蚁爱购。从零开发项目,视频加文档,十天就能学会开发JavaWeb项目。教程路线是:搭建环境=>安装软件=>创建项目=>添加依赖和配置=>通过表生成代码=>编写Java代码=>代码自测=>前后端联调=>准备找工作。学完即可成为合格的Java......
  • 不雅文字过滤?springboot可以这样做!实战!
    这里主要讲敏感词过滤与替换两个功能,引入相关maven依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boo......