在学习spring时,在网上看到一本书介绍spring配置的,感觉还不错,就摘抄了一些过来,以便以后查看。
Spring配置文件是用于指导Spring工厂进行Bean生产、依赖关系注入(装配)及Bean实例分发的"图纸"。Java EE程序员必须学会并灵活应用这份"图纸"准确地表达自己的"生产意图"。Spring配置文件是一个或多个标准的XML文档,applicationContext.xml是Spring的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件。
在学会动手"绘制图纸"之前,先要学会"阅读图纸",熟能生巧讲的就是这个道理,"熟读唐诗三百首,不会作诗也会吟"。
下面列举的是一份比较完整的配置文件模板,文档中各XML标签节点的基本用途也给出了详细的解释,这些XML标签节点在后续的知识点中均会用到,熟练掌握了这些XML节点及属性的用途后,为我们动手编写配置文件打下坚实的基础。
下面我们再来看一下本书综合实例项目中用到的完整配置文件applicationContext.xml:
前面已经准备好了Struts-2.3.15,现在就可以直接搭建Struts2的工程了。前面http://blog.csdn.net/huangchnegdada/article/details/9179041有对Struts-2.3.15的准备工作的详述。
首先打开MyEclispe新建一个Web Project,名字就叫Struts2_0100_Introduction,接下来就是配置Struts2的框架:
然后解压E:\Study Tools\Struts2\struts-2.3.15\apps\下的struts2-blank.war
里面有struts的最基本的配置,首先找到E:\Study Tools\Struts2\struts-2.3.15\apps\struts2-blank\WEB-INF下面的web.xml文件,将其拷贝到工程下的WEB-INF下面。web.xml文件中的代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>hello.jsp</welcome-file>
</welcome-file-list>
</web-app>
然后将E:\Study Tools\Struts2\struts-2.3.15\apps\struts2-blank\WEB-INF\classes下的struts.xml文件考到工程的src文件夹中。
最后工程的结构如下:
struts中的文件代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!--
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>
<action name="index">
<result type="redirectAction">
<param name="actionName">HelloWorld</param>
<param name="namespace">/example</param>
</result>
</action>
</package>
<include file="example.xml"/>
-->
<!-- 此段代码非常关键,它可以让你在修改代码后,不需要重新启动服务器 -->
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<!-- 全局的错误页面 -->
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>
<action name="hello_struts">
<result>
/hello.jsp
</result>
</action>
</package>
<!-- Add packages here -->
</struts>
将此项目部署起来后,在Web Brower中输入:http://localhost:8080/Struts2_0100_Introduction/hello_struts后会出现下面结果,,就说明成功了。
本节讨论Python程序设计时为何引入函数?
为何大家都反对用一堆堆的单个函数语句完成一项程序的设计任务呢?
用一条条的语句去完成某项程序设计时,冗长、不宜理解,不宜复用,而采用按功能模块划分成函数,由若干个函数去完成一项程序设计任务时,整个程序看上去思路清晰,代码可以充分复用好处很多!
用函数完成程序有以下几点好处: