加载springapp-servlet.xml 文件时内部有会发生什么啊?就是apserver启动的时候,什么时候,如何加载springapp-servlet.xml的!
当客户端,发出一个请求,当请求调用某个类的某个方法的时候,
当这个方法用到了注入的类或属性的时候.这个方法的get set方法,是怎么样获取这个注入类的句柄的?
获取的句柄,是apserver启动时加载springapp-servlet.xml后,就已经单例的初始化好了的类?
还是这时候才会根据springapp-servlet.xml文件,再重新new 一个??
每次请求,如果用到springapp-servlet.xml配置文件里面注入类的时候,都会new一次吗?
如果用到的这个注入的类,的很多属性也是springapp-servlet.xml里面的注入类.那又会怎么处理呢?例:public class WebMetho{
public SpringClass getSpringClass;
public SpringClass getGetSpringClass() {
return getSpringClass;
} public void setGetSpringClass(SpringClass getSpringClass) {
this.getSpringClass = getSpringClass;
}
public void webMetho1()
{
//这个方法的get set方法,是怎么样获取这个注入类的句柄的
getSpringClass.tellMeThx();
}
}
springapp-servlet.xml<bean id="webMetho" class="com.cn.springcontroller.WebMetho">
<property name="methodNameResolver">
<ref bean="propertiesMethodNameResolver"/>
</property>
<!--
用到的这个注入的类,的很多属性也是springapp-servlet.xml里面的注入类?
WebMetho类的webMetho1方法用到editInfoDao注入类.
editInfoDao注入类又用到jdbcTemplate注入类
-->
<property name="editInfoDao">
<ref bean="editInfoDao"/>
</property>
</bean>
<bean id="editInfoDao" class="com.cn.springdao.EditInfoDao">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
当客户端,发出一个请求,当请求调用某个类的某个方法的时候,
当这个方法用到了注入的类或属性的时候.这个方法的get set方法,是怎么样获取这个注入类的句柄的?
获取的句柄,是apserver启动时加载springapp-servlet.xml后,就已经单例的初始化好了的类?
还是这时候才会根据springapp-servlet.xml文件,再重新new 一个??
每次请求,如果用到springapp-servlet.xml配置文件里面注入类的时候,都会new一次吗?
如果用到的这个注入的类,的很多属性也是springapp-servlet.xml里面的注入类.那又会怎么处理呢?例:public class WebMetho{
public SpringClass getSpringClass;
public SpringClass getGetSpringClass() {
return getSpringClass;
} public void setGetSpringClass(SpringClass getSpringClass) {
this.getSpringClass = getSpringClass;
}
public void webMetho1()
{
//这个方法的get set方法,是怎么样获取这个注入类的句柄的
getSpringClass.tellMeThx();
}
}
springapp-servlet.xml<bean id="webMetho" class="com.cn.springcontroller.WebMetho">
<property name="methodNameResolver">
<ref bean="propertiesMethodNameResolver"/>
</property>
<!--
用到的这个注入的类,的很多属性也是springapp-servlet.xml里面的注入类?
WebMetho类的webMetho1方法用到editInfoDao注入类.
editInfoDao注入类又用到jdbcTemplate注入类
-->
<property name="editInfoDao">
<ref bean="editInfoDao"/>
</property>
</bean>
<bean id="editInfoDao" class="com.cn.springdao.EditInfoDao">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
解决方案 »
- 方法重载(overloading)和重写(overriding)都与【返回类型】无关??
- 查阅API有没有什么技巧啊?
- --------------------Configuration: <Default>--------------------
- 求助--左键点击控件出现弹出菜单
- InputStream 的read(byte[] d)方法读取内容出现重复读取,这是为什么?
- Java EE 5 SDK 和J2EE 1.4 SDK是什么关系??
- 关于jbuilder和tomacat整合的问题(online)
- 请问如何给TextArea换字体!
- 关于\u的问题
- 请高手指点,webmail问题?
- 数据源的问题?求各位高手帮忙!
- 在web中用spring需要获得bean的时候一般都流行怎么写啊 ?
http://topic.csdn.net/u/20080124/08/b14ab841-be1e-4d0d-b16e-52f77fd3a764.html?seed=1573367784
Spring的MVC可以说稍微复杂了一些,但也封装得更加严密,在J2EE项目中服务器启动是跟web.xml密切相关的。首先:Spring的MVC可以参考Struts的加载原理,首先在web.xml里配置DispatcherServlet,即前段控制器。在初始化DispatcherServlet的时候就会去寻找 项目名字+"-servlet.xml"这样一个配置文件(也可以以任意名字在Web.xml中配置,可以参考Hibernate的原理),读取里面的配置信息,存在Config对象中。然后DispatcherServlet对于url的解析也提供了多种解析器,用不同的方法把请求转发到不同的后端控制器中。另外关于注入类的问题,Spring是典型的AOP思想,用IOC技术来实现任何类的注入。针对Spring MVC的实现是对于每一个后端控制器,在Spring MVC中叫做Controller,有默认的比如CommandClass这样的封装类,前台的表单提交会自动完成这个CommandClass的属性赋值,所以说白了CommandClass就是一个JavaBean,然后对于返回的前台页面来说,Spring也封装了专门的ModelAndView对象和解析器,解析器还扩展了众多前台技术,有针对Jsp的,有这对Velocity的等。关于每个请求都会new一个控制器的实例显然是不现实的,肯定是需要多线程并发访问的,说白了Spring MVC里面的所有Class对于Spring来说,都是一个Bean,Spring管理Bean的默认方式就是单例,当然也是可以改变Bean的默认配置的,要看具体情况。对于你的例子,Spring MVC的控制器对象应该配置在“-servlet”文件中,其他一切跟Web层无关的Bean都应该配置在另外的配置文件中,例如applicationContext.xml,这是个好习惯。由于有了IOC,以上所以所有这些类的方法,都可以用IOC的动态代理来拦截,并切入自己的处理方法,所以Intercepter对于Spring MVC也是很重要的。由于学习笔记不在身边,那些解析器的类型和每种类型的特性,还有一些源代码的特点都一时想不起来了,希望可以帮你解答一部分的疑云。见笑了……
spring:你所需要的所有东西我都给你准备好了,请放心运行。