spring注入的对象和new的对象到底有啥区别
来源:互联网 发布:阿里云如何做代理商 编辑:程序博客网 时间:2024/06/06 05:51
在使用springboot过程中,想使用jdbc模板,就是直接在service层注入一个jdbcTemplate属性,然后直接使用,但是又想封装一下,就创建一个类,类中有jdbcTemplate属性,然后再service中调用我封装的jdbc,刚开始没有封装方法的情况下,想在service中直接想注入我的类,然后调用我的类中的jdbc,什么注解都标注好了,结果一直空指针异常,还以为不好使呢,其实这里面有个很大的问题,就是注解注入的对象和new的对象到底有啥区别;
我们知道,new一个对象的时候,初始化顺序是,父类静态块 > 父类构造器 >父类属性(先系统默认值,后直接你赋予的值)>子类上面的顺序,
但是当有个注解在属性上的时候,会是啥情况呢?
结论:注入的对象,只会调用空参构造函数,且这个对象的所有属性都是默认值,自己手动赋予的值不会被使用,所以在A中的C类,在B中调用A的时候,创建的A对象的属性都是默认值,所以A对象虽然有了,但是A的属性C却是null,所以在B中直接this.a.c.method()是会报null指针异常的,且是c是null的发生原因。
解决方式:C在A中添加get方法,然后B中使用a.getC()即可获得c的对象,且c的对象也是spring注入的。
备注:以上结论和说明,只是个人总结,包括new一个对象初始化顺序,可能不严谨,没有时间验证,以后会完善
0 0
- spring注入的对象和new的对象到底有啥区别
- 关于 Spring new出来的对象 与自动注入对象
- new出来的service对象和你在spring中注入的service对象不是同一个对象
- JS 对象和数组的创建使用new和不使用new有什么区别呢?
- A的对象和new出来的对象有什么区别
- 直接new 对象 Spring 不会注入的解决方法
- C++中定义类的对象:用new和不用new有何区别?
- C++中定义类的对象:用new和不用new有何区别?
- C++中定义类的对象:用new和不用new有何区别
- C++中定义类的对象:用new和不用new有何区别?
- C++中定义类的对象:用new和不用new有何区别?
- C++中定义类的对象:用new和不用new有何区别?
- c++ new 和 不 new创建出来的对象有什么区别
- static 和new对象方法的区别
- new一个类对象和使用类名创建一个对象有什么区别?LinkList和ArrayList的区别
- new对象和直接声明对象的区别
- 直接定义一个对象和new一个对象的区别
- 使用@Autowired自动装配对象和new对象的区别
- ubuntu安装cuda
- HBase环境搭建(集群)
- Android自定义View之超简单圆形数字指示器
- 频繁网络访问问题解决思路
- C++类成员中包含其他类时的初始化问题
- spring注入的对象和new的对象到底有啥区别
- codeforces 356B
- I/O体系中的类
- Largest Divisible Subset
- 物联网的全栈开发之路
- 新锦福 苹果iPhone8概念机曝光:这外观,华为三星拍马难及
- |洛谷|动态规划|P1736 创意吃鱼法
- String拼接问题
- this指针