spring创建对象

问题描述

publicclassTest{publicstaticvoidmain(String[]args){ApplicationContextcontext=newClassPathXmlApplicationContext("com/sxt/test/beans.xml");UserDaouserdao=(UserDao)context.getBean("userDao");userdao.add("d","222");//System.out.print()}}请问,(UserDao)context.getBean("userDao"),是如何创建出UserDao对象的,我查看源码,为什么找不到:new()或者newInstance()呢?请大家指点,谢谢。

解决方案

解决方案二:
反射里面还可以通过构造方法创建对象。建议把日志输出级别调整为debug,看看是那些类和方法创建的bean,找到后直接看源代码或者抓断点调试一步一步de的跟踪
解决方案三:
一般情况下,在这句中ApplicationContextcontext=newClassPathXmlApplicationContext("com/sxt/test/beans.xml");userDao这个bean就被创建了。ApplicationContext实质上是一个beanFactory,它里面包含了一个map用来存储bean。执行上面那一句时,会先读取配置文件,再利用反射将所有的bean进行实例化,然后以bean的name作为key,实例化后的对象作为value存储进去beanFactory里的map,这样在后面调用时即可直接取出。SpringIOC简单过程是这样的。
解决方案四:
引用2楼wu244534279的回复:

一般情况下,在这句中ApplicationContextcontext=newClassPathXmlApplicationContext("com/sxt/test/beans.xml");userDao这个bean就被创建了。ApplicationContext实质上是一个beanFactory,它里面包含了一个map用来存储bean。执行上面那一句时,会先读取配置文件,再利用反射将所有的bean进行实例化,然后以bean的name作为key,实例化后的对象作为value存储进去beanFactory里的map,这样在后面调用时即可直接取出。SpringIOC简单过程是这样的。

正解~~
解决方案五:
工厂模式的。。。

时间: 2024-11-01 03:18:42

spring创建对象的相关文章

Spring学习笔记之依赖的注解(2)

Spring学习笔记之依赖的注解(2) 1.0 注解,不能单独存在,是Java中的一种类型 1.1 写注解 1.2 注解反射 2.0 spring的注解 spring的 @Controller@Component@Service//更多典型化注解,但是@Controller@Service建议使用 @service("personService")可以代替set get 方法,@Resource(name=personDao) @Autowired//按照类型匹配 @Qualifier

Spring学习笔记之基础、IOC、DI(1)

0.0 Spring基本特性 Spring是一个开源框架:是基于Core来架构多层JavaEE系统 1.0 IOC 控制反转:把对象的创建过程交给spring容器来做. 1.1 applicationContext.xml beans 存放了很多个类 把一个类放入到spring容器中,该类就是bean 一个bean就是描述一个类 id就是标示符 命名规范:类的第一个字母变成小写,其他的字母保持不变 class为类的全名 1.2 别名,模块别名 <alias name="helloWorld

spring启动后保证创建的对象不被垃圾回收器回收_java

一.可达性分析(根搜索)算法 JVM通过可达性分析来判定对象是否存活.这个算法的基本思路就是通过一系列称为GC Roots的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的.如下图中对象object1.object2.object3.object4是可用的对象,object5.object6.object7虽然互相关联,但是它们到GC Roots是不可达的,所以它们将会被判定为是可回收的对象. 在Java

创建自己的对象

创建|对象 要创建自己的对象实例,必须首先为其定义一个构造函数.构造函数创建一个新对象,赋予对象属性,并在合适的时候赋予方法.例如,下面的示例为 pasta 对象定义了构造函数.注意 this 关键字的使用,它指向当前对象. // pasta 是有四个参数的构造器.function pasta(grain, width, shape, hasEgg){ // 是用什么粮食做的? this.grain = grain; // 多宽?(数值) this.width = width; // 横截面形状

Hibernate之开门见山

1:SSH框架: Struts2:基于mvc模式的应用层框架模式(Servlet层) Hibernate:基于持久层的框架(数据访问层) Spring:创建对象对象处理的依赖关系以及框架整合(Service层) 2:框架和之前学的对比MVC分层模式: 搭建Hibernate环境,开发步骤: 1:下载源码 Hibernate官网:http://hibernate.org/  2:引入jar包:(9个jar包哦~~~) (1)hibernate3.jar:Hibernate核心jar包文件: (2)

关于Spring中为什么要用接口创建对象求助大家

问题描述 有个接口叫UserManager,它的实现类是UserManagerImpl.配置文件中配置<beanid="userManager"class="com.Login.UserManagerImpl"/>.并且没有在配置文件中配置强制使用CGLIB.但是我想问的是为什么在客户端运行时代码写成:UserManageruserManager=(UserManager)beanFactory.getBean("userManager&quo

Spring的核心之IoC容器创建对象

Spring的Ioc容器,是Spring的核心内容: 作用:对象的创建和处理对象的依赖关系. Spring容器创建对象有以下几种方式: 1:调用无参数的构造器  <!-- 默认无参的构造器 --><bean id="user1" class="com.bie.po.User"></bean> 2:调用有参数构造器  <!-- 带参的构造器 ,基本数据类型直接写如int,引用数据类型写全名如java.lang.String--

Spring面试问答Top 25

原文地址: http://www.importnew.com/15851.html#spring_framework 问题清单: 什么是Spring框架?Spring框架有哪些主要模块? 使用Spring框架有什么好处? 什么是控制反转(IOC)?什么是依赖注入? 请解释下Spring中的IOC? BeanFactory和ApplicationContext有什么区别? 将Spring配置到你的应用中共有几种方法? 什么基于XML的配置? 什么基Java的配置? 怎样用注解的方式配置Spring

利用Spring框架改进J2EE编程

j2ee|编程 摘要 J2EE编程正在变得越来越复杂.J2EE已经发展为一个API.复杂化的编程和配置的复杂网络.为了应对这种复杂性,新的框架和方法不断涌现.这些框架高度依赖于一个称为IoC(Inversion of Control,反向控制)的概念.本文将探讨这种方法的一些特性和优点,因为这种方法与J2EE编程相关,而且可以使J2EE编程变得更轻松. 简介 马克·吐温的一句话常被引用:"--关于我死亡的报道是一种夸张."现在已经出现了很多关于.Net的流言,以及认为J2EE API的