spring 总结错误1

1、在application的启动类中默认的扫描路径是启动类的路径,要想自己的类能编译出来,需要放到同一路径或这个路径下,又或者用ComponentScan指定需要编译类的路径。

可以通debug 类org.springframework.context.annotation.ComponentScanAnnotationParser#parse 下的 basePackages查看真实路径

2、在spring中用注解@Service修饰类时,spring容器会自动帮我生成这个bean并放入到容器中,如果这个类没有写构造函数,就通过反射用默认的构造函数生成bean。如果有写带参数的构造函数,则根据构造函数生成bean实例,但是这个构造函数的入参也要求能在容器中找到,不然就会报错没有这个入参的bean(不管是对象还是基本数据类型)。我们可以先通过注入这个入参的bean到容器中,这样才不会报错。如果有2个或以上的构造函数,也是会报错的。因为spring不知道用那个构造函数,就会选择用默认的构造函数,但是因为你写了构造函数,所以这个类中就不存在默认的构造函数,就会报错找不到对应默认的构造函数。

3、当一个单例的bean,使用autowired注解标记其属性时,这个属性的属性值会被固定下来(每次请求都是的属性值地址都是一样的),如果你想要达到原型模式bean的效果就不能这样写,只能每次通过ApplicationContext 去获取属性值bean

以上是通过网友分享的知识内容做的简陋笔记!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值