题目
Spring中进行属性自动装配时用到的注解可以是什么?A. @AutowiredB. @ControllerC. @RequestMappingD. @Resource
Spring中进行属性自动装配时用到的注解可以是什么?
A. @Autowired
B. @Controller
C. @RequestMapping
D. @Resource
题目解答
答案
AD
A. @Autowired
D. @Resource
A. @Autowired
D. @Resource
解析
本题考查Spring框架中用于属性自动装配的注解相关知识。解题思路是需要对每个选项所代表的注解功能有清晰的了解,判断其是否用于属性自动装配。
- 选项A:@Autowired
@Autowired是Spring框架提供的用于自动装配的注解。它可以作用在构造函数、方法、字段等上面,Spring会根据类型进行自动装配。例如,在一个类中有一个属性需要注入,使用@Autowired注解该属性,Spring会在容器中查找与之类型匹配的bean进行注入。示例代码如下:import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;
@Component
public class MyService {
@Autowired
private MyRepository myRepository;
// 其他代码
}
- **选项B:@Controller**
- `@Controller` 是Spring MVC中的注解,用于标识一个类是控制器类,主要作用是处理客户端的请求,将请求映射到相应的处理方法上,而不是用于属性自动装配。示例代码如下:
```java
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class MyController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "Hello, World!";
}
}
- 选项C:@RequestMapping
@RequestMapping也是Spring MVC中的注解,用于将请求URL映射到控制器的处理方法上,它可以指定请求的URL、请求方法等信息,同样不是用于属性自动装配的注解。示例代码如下:import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class MyController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
@ResponseBody
public String hello() {
return "Hello, World!";
}
}
- **选项D:@Resource**
- `@Resource` 是JSR-250规范定义的注解,也可以用于属性自动装配。它默认按照名称进行装配,如果按照名称找不到对应的bean,再按照类型进行装配。示例代码如下:
```java
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
@Component
public class MyService {
@Resource(name = "myRepository")
private MyRepository myRepository;
// 其他代码
}