我就想问下Spring管理的对象是不是也是new实例出来的 ??? |
|
求回复啊 ,
|
|
不是,是注入的形式来实现的!
|
|
不是 我是想说他的实例是怎么来的 |
|
怎么说呢 , 就是实例是怎么产生的
|
|
大神呢 快点出来啊
|
|
用字符串取得类,构造函数,然后创建对象:
Class clazz = Class.forName(“com.tur.command.ControllerCommand”); Constructor constructor = clazz.getConstructor(/*可以有参数类型*/), Object obj = constructor.newInstance(); 当然还有泛型的使用。 public Constructor<T> getConstructor(Class<?>… parameterTypes) public T newInstance(Object… initargs) If the constructor””s declaring class is an inner class in a non-static context, the first argument to the constructor needs to be the enclosing instance; see section 15.9.3 of The Java? Language Specification. If the required access and argument checks succeed and the instantiation will proceed, the constructor””s declaring class is initialized if it has not already been initialized. If the constructor completes normally, returns the newly created and initialized instance. |
|
5分 |
通过反射出来的呀,想看嘛,它也不可能new呀
|
5分 |
是通过反射生成出来的,当要用到这个类时,就会用反射实例化一个实现类出来
|
我还以为是Spring 帮new实例化 然后注入给对象
|
|
10分 |
反射得到的,你主要搞明白spring中bean的声明周期就好了
|
生命周期 |
|
5分 |
反射 还有java的动态代理 如果你是初级使用者不需要太了解 只需要了解bean的声明和生命周期就可以了
|
5分 |
new 只适合在源码中使用,当我们在运行的时候动态创建对象时只能是反射了。 |
有点看不懂bean的生命周期的解说 |
|
话说:non-singleton行为的bean,Spring容器仅仅是new的替代,容器只负责创建。 |
|
依赖注入、IOC和面向切面编程 AOP
|