问答题练习

本文详细比较了@Autowired和@Resource在Spring中的区别,介绍了Springbean的各类注解及其作用,以及MyBatis的动态SQL标签。同时阐述了Java对象的浅拷贝和深拷贝概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.简述@Autowired和@Resource的区别

@Autowired 是 Spring 框架中的注解,用来标注需要自动装配的 bean。

@Resource 是 Java 自带的注解,用来标注需要自动装配的 bean。

@Autowired 是按类型装配,如果有多个同类型的 bean,会抛出异常;

@Resource 是按名称装配,如果名称不存在,会使用类型装配。

2.将一个类声明为Spring的 bean 的注解有哪些?,并简要说明每个注解的作用

@Component :通用的注解,可标注任意类为 Spring 组件。如果一个Bean不知道属于哪个层,

可以使用 @Component 注解标注。

@Repository : 对应持久层即 Dao 层,主要用于数据库相关操作。

@Service : 对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao层。

@Controller : 对应 Spring MVC 控制层,主要用户接受用户请求并调用 Service 层返回数据给前

端页面。

3.mybatis的动态sql语句标签有哪些?

if:根据条件判断是否包含特定的SQL语句片段。

choose/when/otherwise:类似于Java中的switch语句,根据条件选择执行不同的SQL语句片段。

trim:用于去除或添加SQL语句片段的内容,在生成SQL语句时非常有用。

where:用于在生成SQL语句时根据条件添加WHERE关键字和相关的查询条件。

set:用于在生成UPDATE语句时根据条件添加SET关键字和相关的更新字段。

foreach:用于遍历集合或数组,并根据集合中的元素生成SQL语句片段。

bind:用于将一个表达式绑定到一个变量上,以便在后续的SQL语句中重复使用。

4.简述java的类怎样实现克隆,什么是深拷贝和浅拷贝?

在Java中,可以通过实现Cloneable接口和重写clone()方法来实现对象的克隆。Cloneable接口是一个标记接口,没有任何方法,只是用来标识该类可以被克隆。clone()方法是一个被Object类定义的方法,用于创建并返回当前对象的副本

浅拷贝(Shallow Copy):通过浅拷贝,克隆对象将会复制原始对象的所有字段,包括基本数据类型和引用类型的字段。但是,对于引用类型的字段,仅复制引用而不复制引用对象本身。因此,原始对象和克隆对象将共享同一引用对象。

深拷贝(Deep Copy):克隆对象将会复制原始对象的所有字段,包括基本数据类型和引用类型的字段。但是,对于引用类型的字段,不仅复制引用,还会复制引用对象本身。因此,原始对象和克隆对象将拥有独立的引用对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值