公共int 测试() {
返回testService.test()。
}
}
//业务层
@服务
公共接口案例服务{
int 测试();
}
//业务实现层
@Service(值=“testService”)
公共类CaseServiceImpl 实现CaseService {
@覆盖
公共int测试(){
返回1。
}
}
[]( )1.2 一般例外情况
————————————————– ——————
异常场景一:接口没有实现类,因此启动Spring Boot应用时报如下错误:
描述:
com.ui.InterfaceController 中的字段interfaceTest 需要一个“com.ui.InterfaceTest”类型的bean,但未找到。
注入点有如下注释:
– @org.springframework.beans.factory.annotation.Autowired(必需=true)
行动:
考虑在配置中定义“com.ui.InterfaceTest”类型的bean。
进程退出,退出代码为1
从错误信息中可以看出,只需在@Autowired中添加required=false即可。
@RestController
公共类接口控制器{
@Autowired(必需=假)
私有接口测试接口测试;
@RequestMapping(值=\’/test\’, 方法=RequestMethod.GET)
公共int getCaseList() {
返回接口Test.getCount();
}
}
当然项目是可以启动成功的,但是调用这个控制器就报空指针异常。
java.lang.NullPointerException: null
在com.ui.InterfaceController.get(TestServiceImpl.java:23) ~[classes/:na]
在com.ui.InterfaceController.get(TestController.java:18) ~[classes/:na]
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) ~[na:1.8.0_60]
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_60]
异常场景2:一个接口有多个实现类
如果一个接口有多个实现类,则需要特殊处理:
将@Autowired 的必需属性设置为false。这告诉SpringBoot即使对应的bean不匹配也不要报错,并指定要注入的实现类到\\*\\(以及要注入的类名)。 *@Qualifier\\*\\* 相同,但第一个字母小写)。它将如下。
//TestService的第二个实现类
@Service(值=“testService”)
公共类testServiceImplSecond 实现testService {;
@覆盖
公共int测试(){
返回2。
}
}
//将testService插入接口层并指定第二个实现类
@RestController
@RequestMapping(值=“/测试”)
公共类CaseController {
@Autowired(必需=假)
@Qualifier(\’testServiceSecond\’)
私有TestService测试服务;
@RequestMapping(值=\’/autowired\’, 方法=RequestMethod.GET)
公共int 测试() {
返回testService.test()。
}
}
[]( )2 @资源
======================================================================
@Resource 与@Autowired 的效果大致相同,但也有一些区别。
* @Autowired是Spring注解,@Resource是J2EE注解,可以通过导入注解的包名来判断。
\\-@Autowired默认根据byType进行bean匹配,@Resource默认根据byName进行bean匹配。
* Spring 是第三方的,而J2EE 是Java 专有的。因此,我们建议使用@Resource注解来减少代码与Spring之间的耦合。
* @Autowired 作用于构造函数、方法、参数、字段和注解\\_type;@Resource 作用于方法、字段和类型。
一个例子是:
@服务
公立班学校{
@资源(名称=\’老师\’)
私人家教老师。
总结
我们总是仰望大公司的高手,但实际上,高手与新晋程序员相比也只是普通人,如果不付出努力,差距只会越来越大。大。
虽然面试问题肯定会对你以后想做的事情有所帮助,但我们希望你能用它们来总结自己的弱点,提高自己的核心技术竞争力。每一次面试经历都是技术技能的一课,你的面试后回顾总结很棒。
私人家教老师。
总结
我们总是仰望大公司的高手,但实际上,高手与新晋程序员相比也只是普通人,如果不付出努力,差距只会越来越大。大。
虽然面试问题肯定会对你以后想做的事情有所帮助,但我们希望你能用它们来总结自己的弱点,提高自己的核心技术竞争力。每一次面试经历都是技术技能的一课,你的面试后回顾总结很棒。
[外部链接图像正在传输.(img-3lOY79V6-1720083993932)]
以上关于#SpringBoot的相关内容来源网络,仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92949.html