﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-xzc520-随笔分类-hiberante&amp;spring</title><link>http://www.blogjava.net/xzc520/category/16266.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 07:38:52 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 07:38:52 GMT</pubDate><ttl>60</ttl><item><title>springMVC</title><link>http://www.blogjava.net/xzc520/archive/2006/10/18/75776.html</link><dc:creator>嫁蛙</dc:creator><author>嫁蛙</author><pubDate>Tue, 17 Oct 2006 16:06:00 GMT</pubDate><guid>http://www.blogjava.net/xzc520/archive/2006/10/18/75776.html</guid><wfw:comment>http://www.blogjava.net/xzc520/comments/75776.html</wfw:comment><comments>http://www.blogjava.net/xzc520/archive/2006/10/18/75776.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xzc520/comments/commentRss/75776.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xzc520/services/trackbacks/75776.html</trackback:ping><description><![CDATA[一般的MVC框架处理的问题包括<br />1.将web页面中的输入元素封装成为一个（请求）数据对象。<br />2.根据请求不同调用相应的逻辑处理单元，并将（请求）数据对象作为参数传入。<br />3.逻辑处理单元完成运算后，返回一个结果数据对象。<br />4.将结果数据对象中的数据与预先设计好的表现层相融合并展现给用户。<br /><img src ="http://www.blogjava.net/xzc520/aggbug/75776.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xzc520/" target="_blank">嫁蛙</a> 2006-10-18 00:06 <a href="http://www.blogjava.net/xzc520/archive/2006/10/18/75776.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring概念理解</title><link>http://www.blogjava.net/xzc520/archive/2006/10/16/75506.html</link><dc:creator>嫁蛙</dc:creator><author>嫁蛙</author><pubDate>Mon, 16 Oct 2006 15:50:00 GMT</pubDate><guid>http://www.blogjava.net/xzc520/archive/2006/10/16/75506.html</guid><wfw:comment>http://www.blogjava.net/xzc520/comments/75506.html</wfw:comment><comments>http://www.blogjava.net/xzc520/archive/2006/10/16/75506.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xzc520/comments/commentRss/75506.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xzc520/services/trackbacks/75506.html</trackback:ping><description><![CDATA[Inversion<br />of Control Containers（IOC）由容器来控制程序间的关系，而非程序来控制，就是所谓的容器控制反转。<br />Dependency Injection 容器动态的将某种动态关系注入到主键当中。<br /><br />依赖注入的几种实现<br />   type1 接口注入<br />            public class ClassA {<br />                  private InterfaceB clzB;<br />                  public doSomething() {<br />                        Ojbect obj =<br />                              Class.forName(Config.BImplementation).newInstance();<br />                         clzB = (InterfaceB)obj;<br />                         clzB.doIt()<br />                  }<br />            ……<br />            }<br />   我们通过配置文件动态的加载类，然后强制转换成相应的类来实现动态注入，对于IOC容器来说加载类的过程由容器来完成。<br />web容器采用type1 接口注入的具体应用<br />public class MyServlet extends HttpServlet {<br />public void doGet(<br />         HttpServletRequest request,<br />         HttpServletResponse response)<br />            throws ServletException, IOException {<br />      ……<br />   }<br />}<br /><br />Type2 设值注入  它由容器通过Setter方法完成依赖关系的设置<br />Type3构造了注入  <br />public class DIByConstructor {<br />   private final DataSource dataSource;<br />   private final String message;<br />   public DIByConstructor(DataSource ds, String msg) {<br />      this.dataSource = ds;<br />      this.message = msg;<br />   }<br />   ……<br />}<br /><br />Bean Wrapper<br />     由容器将依赖关系注入到组件当中，在运行期间由spring根据配置文件，将其它对象的引用通过组件提供的setter方法进行设定。运行期间动态生成对象并设定它对依赖关系.<br />Object obj = Class.forName("net.xiaxin.beans.User").newInstance();<br />BeanWrapper bw = new BeanWrapperImpl(obj);<br />bw.setPropertyValue("name", "Erica");<br />System.out.println("User name=&gt;"+bw.getPropertyValue("name"));<br /><br />Bean Factory<br />  创建并且维护Bean实例它可以配置<br />      1.  Bean的属性值及其依赖关系（即对其它Bean的引用)<br />      2.  Bean的创建模式（是否单例模式)<br />      3.  Bean的初始化和销毁方法<br />      4.  Bean的依赖关系<br /><br />ApplicationContext<br />      覆盖了BeanFactory所有的方法，而且提供了新的功能。它有以下扩展功能<br />   1.国际化的支持<br />   2.资源访问<br />   3.事件传播<br />   4.多实例加载<br />    spring提供了可配置的ApplicationContext加载机制。加载器有两种选择：ContextLoaderListener或ContextLoaderServlet一个利用servlet2.3的Listener接口实现而另一个则利用Servlet接口实现。<br />在web.xml中加入<br />            &lt;listener&gt;<br />               &lt;listener-class&gt;<br />                  org.springframework.web.context.ContextLoaderListener<br />              &lt;/listener-class&gt;<br />           &lt;/listener&gt;<br />或者:<br />         &lt;servlet&gt;<br />            &lt;servlet-name&gt;context&lt;/servlet-name&gt;<br />            &lt;servlet-class&gt;<br />                  org.springframework.web.context.ContextLoaderServlet<br />            &lt;/servlet-class&gt;<br />            &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br />         &lt;/servlet&gt;<br />Web容器会自动加载WEB-INF/applicationContext.xml初始化ApplicationContext实例.如果你指定配置文件就可以通过context-param指定：<br />      &lt;context-param&gt;<br />         &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;<br />         &lt;param-value&gt;/WEB-INF/myApplicationContext.xml&lt;/param-value&gt;<br />      &lt;/context-param&gt;<br />配置完成后就可以通过WebApplicationContextUtils.getWebApplicationContext方法在Web应用中获取ApplicationContext的引用.<br /><br /><br /><br /><br /><img src ="http://www.blogjava.net/xzc520/aggbug/75506.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xzc520/" target="_blank">嫁蛙</a> 2006-10-16 23:50 <a href="http://www.blogjava.net/xzc520/archive/2006/10/16/75506.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>