首页 > 编程语言 >Java面试小练(十二)

Java面试小练(十二)

时间:2023-12-25 09:03:49浏览次数:40  
标签:依赖 Java Spring 小练 面试 Bean 注解 异常 注入

1). @RequestParam、@RequestBody、@PathVariable 是 Spring MVC 中处理请求参数的三个注解。

  • @RequestParam:用于处理 URL 中的请求参数,如 ?name=value。通过 @RequestParam 注解,可以指定参数的名称、required、defaultValue 等属性。
  • @RequestBody:用于处理请求体中的数据,如 JSON、XML 等。通过 @RequestBody 注解,可以将请求体中的数据自动绑定到 Java 对象上。
  • @PathVariable:用于处理 URL 中的路径变量,如 /users/{id}。通过 @PathVariable 注解,可以指定路径变量的名称、value 属性等。

2). 请详细描述一下 什么是DI ? 常用注解是什么 ? 如果依赖注入时,IOC容器中同一个类型的bean有多个,该如何实现依赖注入(提示:三种方案)?

依赖注入(Dependency Injection,DI)是一种设计模式,它将对象的依赖关系从对象本身转移到了外部。在 Spring 中,IOC(依赖注入容器)负责管理所有的Bean,并负责将对象之间的依赖关系注入到各个Bean中。常用的注解有 @Autowired、@Inject、@Component、@Service、@Repository、@Controller 等。

如果依赖注入时,IOC容器中同一个类型的bean有多个,可以采用以下三种方案实现依赖注入:

  • 构造函数注入:通过在构造函数上使用 @Autowired 注解,Spring 会自动找到匹配的 Bean 并注入到构造函数中。
  • setter 方法注入:通过在 setter 方法上使用 @Autowired 注解,Spring 会自动找到匹配的 Bean 并注入到 setter 方法中。
  • field 注入:通过在字段上使用 @Autowired 注解,Spring 会自动找到匹配的 Bean 并注入到字段中。

3). 在项目开发中,处理异常通常有以下几种方式:

  • 使用 try-catch 语句:在可能抛出异常的代码块中使用 try-catch 语句捕获异常,并进行异常处理。
  • 使用 @ExceptionHandler 注解:使用 @ExceptionHandler 注解定义全局异常处理器,用于统一处理项目中所有的异常。
  • 自定义异常:如果需要在项目中自定义异常,可以创建一个新的类,继承自 Exception 或 RuntimeException,并重写其构造函数和toString 方法。

定义全局异常处理器的方法如下:

  • 创建一个全局异常处理类,继承自 ExceptionHandler 接口。
  • 重写 handleException 方法,定义全局异常处理逻辑。
  • 在配置类上使用 @EnableExceptionHandling 注解,开启全局异常处理功能。

如果项目中自定义异常,推荐继承自 Exception,而不是 RuntimeException,因为 Exception 可以传递给父类,而 RuntimeException 不可以。

标签:依赖,Java,Spring,小练,面试,Bean,注解,异常,注入
From: https://www.cnblogs.com/yifan0820/p/17925229.html

相关文章

  • 十五.JAVA.MAP.工具类,泛型
    嵌套类/内置类/内部类/内部接口K:keyV:valueE:elementR:ReturnTypeT:typeMap<K,V>:存储的是键值对。每个键值对成为映射项(Entry);键唯一,值是可重复的;每个键最多只能映射到一个值。HashMap:键采用哈希表结构,允许null键null值,线程不安全Like......
  • 十六,JAVA IO流
    //static<T>List<T> emptyList()  //     返回空的列表(不可变的)。  //static<K,V>Map<K,V> emptyMap()  //     返回空的映射(不可变的)。  //static<T>Set<T> emptySet()  //     返回空的set(不可变的)。......
  • Java基础-Spring篇
    Spring框架的七大模块SpringCore:框架的最基础部分,提供IoC容器,对bean进行管理。SpringContext:继承BeanFactory,提供上下文信息,扩展出JNDI、EJB、电子邮件、国际化等功能。SpringDAO:提供了JDBC的抽象层,还提供了声明性事务管理方法。SpringORM:提供了JPA、JDO、Hibernate......
  • 系统架构设计面试指南(01)-微服务和CAP
    系统设计是定义满足特定需求的系统的架构、接口和数据的过程。系统设计通过协同和高效的系统满足您的业务或组织需求。一旦业务或组织确定了其需求,就可以开始构建一个将这些需求融入物理系统设计的过程,以满足客户的需求。您设计系统的方式将取决于您是选择自定义开发、商业解决方案......
  • Java静态类
    在Java中,静态类是一种特殊的类,它不能被实例化。静态类主要用于工具类或实现某些特定功能,例如工厂模式中的工厂类。要声明一个静态类,可以使用static关键字,如下所示:java复制代码publicstaticclassStaticClass{//静态类的成员和方法}静态类的特点如下:不能被实......
  • java基础语法api之随机数的介绍以及案例应用
    一:概述在实际开发应用中,我们都会看到,有许多的场景中需要使用到随机不确定的数。在这时,我们就需要用到API中的Random类。二:具体说明<1>JDK_API帮助文档中的说明Random:-该类的实例用于生成随机数构造方法:-Random():创建一个新的随机数生成器成员方法-intnextInt(intbound):获......
  • JavaWebDay4
    一:maven什么是maven:maven是apache旗下的一个开源项目,是一款用于管理和构建Java项目的工具maven的作用:MAVEN项目的目录配置maven的环境的两种方法 导入meaven所写的exclusion应该在不想间接依赖的外面级写,比如a依赖b,b依赖c,那么不想要c的时候则在写依赖b的后面写ex......
  • spring:Exception in thread "main" java.lang.NoClassDefFoundError: org/springframe
     设置了父类框架<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.10.RELEASE</version><relativePath/><!--l......
  • JavaScript(JS) 数组
    ​ JavaScript数组是一个可变长度的对象,用于存储多个值。数组的值可以是任何类型,包括数字、字符串、对象、函数等。参考文档:JavaScript(JS)数组-CJavaPy1、创建数组可以使用以下方式创建数组:使用方括号[]来创建一个空数组:JavaScriptconstarr=[]; 使用 A......
  • #yyds干货盘点#Java面试题
    线上接口负载剧增,快扛不住了,你的首选方案是什么遇到这样的问题,我们的第一反应应该是增加缓存。因为,增加缓存是解决系统性能问题最快速、最高效的方案,它能够快速提升系统的线性吞吐量,效果也最为明显。这就相当于是用空间来换取时间。曾经有人说过,缓存是解决性能问题的万金油,哪里存在......