在JBUilder 中创建Spring的J2SE的应用
- 格式:doc
- 大小:864.50 KB
- 文档页数:22
一搭建三大框架步骤1 搭建s2sh步骤分析:1.1在MyEclipse 里面新建一个 java web project1.2新建三个 Source Folder :src : 源文件config : 存放配置文件 : hibernate , spring , struts2test: 测试类1.3 导入环境需要的jar 包 : WebRoot/WEB-INF/lib (一共64个)2 搭建Hibernate 和Spring 整合(*根据搭建需求谁能先测试就先搭建谁)2.1 在 src 源文件里面建立一个 cola.s2sh.domain[并且在该包下创建一个持久类和该类的映射文件] .2.2 配置核心文件在 config 里面建立一个hibernate 文件夹里面创建hibernate.cfg.xml配置文件(里面的内容拷贝就可以)2.3 在spring 文件夹里面创建并且把sessionFactory 交给spring 来管理: [applicationContext-db.xml中引入][<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"><value>classpath:hibernate/hibernate.cfg.xml</value> </property></bean>]在 applicationContext.xml 中 : 导入<import resource="applicationContext-db.xml"/>2.4 测试sessionFactory[编写SpringUtils 然后继承这个][public class SpringUtils {public static ApplicationContext context;static {context = newClassPathXmlApplicationContext("spring/applicationContext.xml" );}}]2.5 编写 dao .service 的包类和接口;PersonDaoImpl 要继承HibernateDaoSupport[public class PersonDaoImpl extends HibernateDaoSupport implements PersonDao {public void savePerson(Person person) {this.getHibernateTemplate().save(person);}}]2.6 把 dao ,service 放在spring 容器中:[<bean id="personDao"class="cola.s2sh.daoImpl.PersonDaoImpl"> <property name="sessionFactory"><ref bean="sessionFactory"/></property></bean><bean id="personService"class="cola.s2sh.service.impl.PersonServiceImpl"><property name="personDao"><ref bean="personDao"/></property></bean>]2.7 完成 spring 声明式处理 :[<!-- 事务管理 --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory"><ref bean="sessionFactory"/></property></bean><tx:advice id="tx"transaction-manager="transactionManager"><tx:attributes><tx:method name="save*"read-only="false"/><tx:method name="update*"read-only="false"/><tx:method name="delete*"read-only="false"/><!--除了上面三种情况以外的情况--><tx:method name="*"read-only="true"/></tx:attributes></tx:advice><aop:config><aop:pointcutexpression="execution(* cola.s2sh.service.impl.*.*(..))"id="perform"/><aop:advisor advice-ref="tx"pointcut-ref="perform"/> </aop:config>]2.8 整合struts 创建 action 类包 ;2.9 把action 放在spring 容器中* 注意在personAction的spring的配置中一定要写一个属性scope="prototype"[<bean id="personAction"class="cola.s2sh.action.PersonAction" scope="prototype"><property name="personService"><ref bean="personService"/></property></bean>]在这个中引入下面3.0 编写struts2中配置文件Struts –person.xml中Struts.xml3.1 编写web .xml文件[<?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID"version="3.0"><display-name>cola.s2sh</display-name><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener><!—将srping放在SrvletContext中进行加载当servlet加载时 spring 也完成加载 --> <context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/applicationContext.xml</param-value> </context-param><filter><filter-name>OpenSessionInViewFilter</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class></filter><filter-mapping><filter-name>OpenSessionInViewFilter</filter-name><url-pattern>*.action</url-pattern></filter-mapping><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>]二原理分析:一、 Struts 2框架整合Spring步骤1、复制文件。
毕业论文题目企业固定资产管理系统姓名专业班级指导教师完成时间摘要:固定资产管理系统是一个企事业单位不可缺少的部分,它的内容对于企事业单位的决策者和管理者来说都至关重要,所以固定资产管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理固定资产的信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着计算机技术的不断发展,计算机应用于各大领域,并给人们的生活带来了极大的便利,在固定管理系统亦是如此。
以往固定资产员由于缺乏适当的软件而给其工作带来了很多不便。
本论文所介绍的便是一个固定资产管理系统,以方便在固定资产安排和固定资产管理上的工作任务。
本论文主要介绍的是固定资产管理系统的整个设计过程。
第1章的绪论包括选题的背景,目的和意义,国内外现状;第2章平台简介包括JBuilder2005和SQL Server数据库的介绍;第3章系统分析,需求分析,数据流与数据字典,功能需求;第4章系统设计部分包括系统总体设计,功能模块设计,数据库设计;第5章是系统实现部分包括程序设计,各个功能模块的实现,系统的测试;论文最后为结论、致谢、参考文献。
关键词:固定资产管理 SQL Server数据库 C/S结构Abstract: Fixed Assets Management System is an enterprise units indispensable part It is an enterprise units for the policy makers and managers are of great importance, Therefore, fixed asset management system should be able to provide users with sufficient information and efficient means of inquiry. But there has been the use of traditional artificial approach in the management of fixed assets information, This mode of administration, there are many drawbacks, such as : lowefficiency, poor security, the other over the long term. will have a lot of documents and data, which identify, update and maintenance caused a lot of difficulties. As computer technology continues to develop, computers for all major areas, and to people's lives brought great convenience, In fixed management system is reflected. Members of the previous fixed assets due to the lack of appropriate software, which bring to their work a lot of inconvenience. This paper is presented in a fixed asset management system, to facilitate the arrangements in fixed assets and fixed assets management of the task. This paper introduces the fixed-asset management system throughout the design process. Chapter 1 Introduction of topics including the background, purpose and significance of the domestic and international situation; Chapter 2 Introduction including JBuilder2005 platform and SQL Server database introduced; Chapter 3 analysis, demand analysis, data flow and data dictionary, functional requirements; Chapter 4 of system design, including system design, the module design, database design; Chapter 5 is a systematic process to achieve include design, the various functional modules in the system, system testing; Finally, the paper of the conclusions, thank references. Keywords : fixed assets management SQL Server databaseclient-sever structure目录第一章绪论 (1)1.1选题的背景 (1)1.2目的和意义 (1)第二章平台简介 (2)2.1开发平台和技术简介 (2)2.2J BUILDER2005工具简介 (3)2.3MVC开发模式简介 (4)2.4JDBC技术简介 (6)2.5数据库平台介绍 (10)2.5.1SQL SERVER 数据库 (10)第三章系统分析 (10)3.1需求分析 (10)3.2功能需求 (10)3.2.1 管理员登录 (10)3.2.2固定资产信息管理 (11)3.2.3人员信息管理 (11)3.2.4资产的领用 (12)3.2.5资产的归还 (12)3.2.6资产信息浏览和查询 (12)3.3数据字典 (12)第四章系统设计 (15)4.1系统总体设计 (15)4.2功能模块设计 (21)第五章系统实现 (25)5.1程序设计 (25)5.1.1设备管理模块 (26)第六章系统测试 (33)6.1测试的任务与目标 (33)6.1.1测试的任务 (33)6.1.2测试的目标 (34)6.2测试方案 (34)结论 (35)参考文献: (36)第一章绪论1.1选题的背景某公司业务不断发展,人员越来越多,固定资产的管理人员压力逐渐增大,需要建立数据库和使用软件系统来进行管理。
jbuilder 用法(实用版)目录1.什么是 JBUILDER2.JBUILDER 的基本用法3.JBUILDER 的配置4.JBUILDER 的优点5.JBUILDER 的缺点6.JBUILDER 的发展前景正文1.什么是 JBUILDERJBUILDER 是一个使用 Java 编写的 Web 应用程序开发框架。
它允许开发人员使用简单的拖放操作构建 Web 应用程序,而无需编写复杂的HTML 和 JavaScript 代码。
JBUILDER 旨在使 Web 应用程序开发变得更加快速、简单和可靠。
2.JBUILDER 的基本用法JBUILDER 的基本用法包括以下几个步骤:(1)下载和安装 JBUILDER:可以从 JBUILDER 的官方网站上下载并安装 JBUILDER。
(2)创建一个新的 JBUILDER 项目:打开 JBUILDER,选择“新建项目”,然后选择一个项目模板,例如“空白项目”或“Maven 项目”。
(3)设计用户界面:在 JBUILDER 的“设计”视图中,可以使用拖放操作构建用户界面。
例如,可以添加文本框、按钮和表格等控件。
(4)编写后端代码:在 JBUILDER 的“代码”视图中,可以编写后端代码。
例如,可以编写 Servlet 或 Spring Boot 控制器,以及实体类、接口和 DAO 等。
(5)运行和测试应用程序:在 JBUILDER 的“运行”视图中,可以运行和测试应用程序。
例如,可以查看应用程序的页面响应,或者测试应用程序的功能。
3.JBUILDER 的配置JBUILDER 提供了多种配置选项,以满足不同开发人员的需求。
例如,可以配置 JBUILDER 的开发环境、构建工具和应用程序服务器等。
4.JBUILDER 的优点JBUILDER 具有以下几个优点:(1)简单易学:JBUILDER 的拖放操作使得 Web 应用程序开发变得更加简单和容易学习。
(2)快速开发:JBUILDER 的模板和组件库可以加快 Web 应用程序的开发速度。
jbuilder 用法JBuilder用法JBuilder是一个用来构建JSON格式数据的Ruby库,它可以帮助开发者轻松地生成符合RESTful API标准的JSON响应。
下面列举了一些JBuilder的常用用法,并给出了详细的讲解。
1. 创建JSON格式数据对象使用JBuilder创建一个简单的JSON对象非常简单,只需要使用.json方法并传递一个块,块中可以定义要生成的JSON键值对。
json.(键)(值)例如,以下代码将创建一个具有”name”键和”John Doe”值的JSON对象:"John Doe"2. 创建嵌套JSON对象JBuilder还允许我们在JSON对象中创建嵌套对象。
我们可以使用.(sub_obj)语法来创建嵌套的子对象。
例如:do"John Doe"""end上述代码将创建一个具有”user”键的JSON对象,并在其值中创建一个嵌套的子对象,该子对象具有”name”和”email”键。
3. 创建JSON数组JBuilder还支持创建包含多个对象的JSON数组。
我们可以在块中使用.array!方法来创建JSON数组,并在块中定义数组中的每个元素。
! @users do |user|end上述代码将根据@users变量中的每个用户对象创建一个JSON对象,并将它们添加到一个名为”array”的JSON数组中。
4. 使用条件逻辑JBuilder还支持使用条件逻辑,根据条件动态生成JSON键值对。
我们可以使用.if和.else方法。
if ?上述代码将只在``不为空时创建一个具有”age”键的JSON对象。
5. 自定义JSON键名在默认情况下,JBuilder将使用属性或方法名称作为JSON键名,但我们可以使用.(键名)语法来自定义键名。
json.(:"full_name") { "#{_name} #{_name}" }上述代码将创建一个具有”full_name”键且值为”user”的完整用户名的JSON对象。
图解Java开发工具JBuilder 9.0一、概述Jbuilder 9是功能强大的可视化Java集成开发工具,可以快速开发包括复杂企业级应用系统的各种Java程序,包括独立运行程序、Applet程序、Servlet、JSP、EJB、Web Service等,最新的Jbuilder 9版本支持Sun的J2SE 1.4和J2EE 1.4。
使用可视化工具开发程序有很多好处,其中最显著的是能够快速生成程序框架、设计图形界面、调试程序等,此外Jbuilder 9内置了对一些企业级服务器的支持,包括Borland服务器、Bea公司的WebLogic服务器、IBM的WebSphere服务器和iPlanet服务器。
Jbuilder 9在以前版本的基础上,增强和增加了许多功能。
特性如下:(1)工程管理(Project management)。
增强了工程之间的鼠标拖放和其他管理功能,支持打开Together 工程文件。
(2)编译(Build)。
Make、Ant已经升级,支持工程导出到Ant。
(3)打包(Archive Builder)。
该功能更加灵活方便。
(4)团队开发(Team development)。
CVS、Visual SourceSafe、ClearCase得到升级,增加了StarTeam。
(5)Web Service。
原有的Apache Axis toolkit和Apache SOAP toolkit已经升级,WebLogic toolkit添加了Web Services Console和Export As AnAsynchronous Web Service wizard。
(6)Productivity enhancements。
编码工具和文档工具进一步增强,例如JavaDoc、Refactoring。
(7)Editor(编辑器)和Debuger(调试器)。
增强的编辑器和调试器功能使代码编写更加方便。
jbuilder用法JBuilder 是一个用于构建和管理Java应用程序的集成开发环境(IDE)。
它是 Borland 公司开发的,用于帮助开发人员更轻松地进行Java 开发,提高代码的质量和效率。
JBuilder 提供了许多强大的功能和工具,方便开发人员进行各种开发任务,减少了重复性和繁琐的任务。
下面是 JBuilder 的一些常见用法:1. 创建项目:在 JBuilder 中,您可以创建新的 Java 项目。
您可以选择不同的项目类型,例如标准 Java 项目、Web 项目或移动应用项目等。
您可以设置项目的名称、目录结构和运行时环境等。
3. 调试代码:JBuilder 提供了调试功能,帮助您识别和解决代码中的问题。
您可以在代码中设置断点,并逐步执行代码以检查变量的值和程序执行流程。
还可以查看堆栈跟踪、监视变量、评估表达式以及单步执行代码。
4. 构建和运行:JBuilder 的构建工具可以帮助您构建和打包您的Java 应用程序。
您可以选择不同的构建选项,例如编译代码、打包成JAR 文件或者构建可执行文件等。
您还可以配置运行环境和参数,并在JBuilder 中运行您的应用程序。
5. 版本控制:JBuilder 集成了版本控制系统,例如 Git、SVN等。
您可以将项目连接到版本控制系统,管理代码的版本和修改。
您可以提交代码、拉取更新、比较差异以及解决冲突等。
8. 性能分析:JBuilder 提供了性能分析工具,帮助您识别和解决代码中的性能问题。
您可以使用分析器监视代码的执行时间、内存使用情况和方法调用等。
分析器会生成报告,帮助您优化代码和提高应用程序的性能。
10. 文档和帮助:JBuilder 提供详细的文档和帮助,帮助您了解其功能和使用方法。
您可以查看在线帮助、文档和教程,了解如何使用JBuilder 进行开发。
还可以参加培训课程和社区论坛,与其他开发人员交流经验和解决问题。
总结起来,JBuilder 是一个功能强大的 Java 集成开发环境,提供了丰富的功能和工具,帮助开发人员更轻松地进行 Java 开发。
java liquibase的用法Liquibase是一个开源的数据库版本控制工具,可以帮助开发人员管理和追踪数据库结构的变化。
它使用XML或YAML等格式来描述数据库的变化,可以自动化执行和管理这些变化。
使用Liquibase,可以轻松地对数据库进行版本控制,并跟踪和应用数据库结构的变更。
以下是使用Java Liquibase的基本用法:1. 配置Liquibase:为了使用Liquibase,首先需要在项目中引入Liquibase的相关依赖。
可以使用Maven或Gradle等构建工具来管理依赖关系。
2. 创建Change Set:一个Change Set代表了一个数据库结构的变化,可以是创建表、添加列、索引或约束等操作。
可以使用XML或YAML文件来定义Change Set。
3. 执行Change Set:使用Liquibase的Java API,可以在应用程序启动时自动执行Change Set。
可以通过以下代码执行Change Set:```javaimport liquibase.Liquibase;import liquibase.database.jvm.JdbcConnection;import liquibase.resource.ClassLoaderResourceAccessor;import javax.sql.DataSource;import java.sql.Connection;public class LiquibaseExecutor {public static void executeChangeSet(DataSource dataSource) {try (Connection connection = dataSource.getConnection()) {Liquibase liquibase = new Liquibase("changelog.xml", new ClassLoaderResourceAccessor(), new JdbcConnection(connection));liquibase.update("");} catch (Exception e) {// 处理异常}}}```4. 更新数据库:执行Change Set后,Liquibase将自动检测数据库的当前版本,并将Change Set应用到数据库中。
jellipsis用法Jellipsis是一款功能强大的桌面工具,可以帮助用户更好地管理电脑上的文件和文件夹。
下面是Jellipsis的用法介绍:一、安装和启动1. 下载Jellipsis安装包,并按照提示进行安装。
2. 安装完成后,启动Jellipsis应用程序。
二、基本操作1. 打开文件或文件夹:在Jellipsis界面中,可以直接点击文件或文件夹的名称或图标来打开它们。
2. 创建新的文件或文件夹:在Jellipsis界面的顶部菜单中,可以选择“文件”或“文件夹”选项,然后根据需要创建新的文件或文件夹。
3. 移动文件或文件夹:可以使用Jellipsis界面的拖放功能,将文件或文件夹移动到不同的位置。
4. 重命名文件或文件夹:可以在Jellipsis界面中直接双击文件或文件夹,输入新的名称并保存。
三、高级操作1. 搜索文件和文件夹:可以使用Jellipsis的搜索功能,快速找到电脑上的文件和文件夹。
2. 批量操作:可以使用Jellipsis的批量操作功能,一次性对多个文件或文件夹进行操作,如重命名、移动、复制等。
3. 文件属性查看:可以使用Jellipsis查看文件或文件夹的属性,如大小、创建时间、修改时间等。
4. 文件压缩和解压缩:可以使用Jellipsis将文件压缩成zip格式,并进行解压缩。
四、界面设置1. 主题设置:可以在Jellipsis界面中,选择不同的主题来改变界面的外观。
2. 图标大小设置:可以调整文件和文件夹的图标大小,以满足不同的视觉需求。
3. 其他设置:还可以根据个人习惯,对Jellipsis界面进行其他设置。
五、常见问题解答1. 如何卸载Jellipsis?答:在Jellipsis界面中,选择“帮助”菜单,然后点击“卸载”选项即可。
2. 为什么我的Jellipsis无法正常工作?答:可能是由于软件版本与电脑系统不兼容或者损坏导致的,可以尝试重新下载安装。
六、总结总体来说,Jellipsis是一款非常实用的桌面工具,可以帮助用户更方便地管理电脑上的文件和文件夹。
Java程序设计课程教学分析摘要:文章针对Java程序设计课程的教学实际,强调了第一堂课的重要性,并给出一些具体可行的措施;介绍了具有河南农业大学特色的企业联合培训学分置换教学环节,提出重视Java 基础教学和加强Java 类库的教学观点;倡导加强实践教学,传统教学与多媒体教学手段并用,以切实增强教学效果,提高学生对Java 语言的综合应用能力。
关键词:Java 教学;第一堂课;学分置换;多媒体教学;实践教学Java是1995年由Sun公司组织开发的一种编程语言。
时至今日,Java已经发展为一个覆盖面广、效率高、易用性强的技术平台,它不仅可以用来开发大型的桌面应用程序,而且特别适合于Internet的应用开发,是一门正在被广泛使用的编程语言。
Java是面向对象编程语言,涉及到网络、多线程等重要的基础知识,而且很多新的技术领域都涉及到了Java语言。
学习和掌握Java已成为共识,国内外许多大学已将Java语言列入了本科教学计划,IT行业对Java人才的需求也在不断地增长,一些软件公司对其开发人员周期地进行Java的基础培训工作。
在IT行业发达的北美洲,有将近60%的软件开发人员在使用Java完成他们的工作。
在我国,IT 行业对Java开发人员需求量大,已和.NET需求量相当,就业前景广阔,很多高校将Java列入必修课程[1-3]。
但由于Java语言的实践性强和开发环境的特殊,怎样让学生更好地学习Java程序设计课程,便成了计算机教学中一个探讨与研究的热点和焦点。
本文结合我院教学实践谈几点分析。
1上好Java程序设计第一堂课通常一个完整的教学过程包括:1)制订课程教学计划;2)准备教案;3)组织授课;4)批改作业;5)辅导学生;6)考查成绩;7)分析质量;8)教学总结。
课堂教学质量的提高与前3个环节紧密联系。
其中教学计划和教案是教学内容的体现,而组织授课是提高教学质量的关键。
在组织授课过程中,课程第一堂课的重要性不言而喻,授课教师借助它来激发学生学习本门课程的兴趣和热情,既要把相关知识传授给学生,激发学生的好奇心,又要尽力促使学生对后续学习充满期待和向往。
servlet、javabean创建和使用方法Servlet是一种用于处理HTTP请求的Java应用程序框架。
它是Java Web 开发中的核心组件之一,能够通过Servlet容器将HTTP请求转发给服务器,并对服务器返回的响应进行处理。
JavaBean是Java中用于描述对象属性的一种数据类型。
JavaBean是一种封装性较高的对象,可以通过Java编程语言直接访问和操作。
在Servlet中,JavaBean是一种重要的数据存储方式,可以将Web应用程序中的数据存储在服务器端,以便更好地管理和操作数据。
下面是创建和使用Servlet和JavaBean的一般步骤:1. 创建Servlet:在Web应用程序的根目录下创建Servlet的Java文件,通常命名为`servlet.java`。
在Servlet的Java文件中,需要定义Servlet的接口和实现类。
接口定义Servlet的响应和处理逻辑,实现类则具体实现接口。
2. 创建JavaBean:在Web应用程序的根目录下创建JavaBean的Java文件,通常命名为`javabean.java`。
在JavaBean的Java文件中,需要定义JavaBean 的属性和方法。
属性是Servlet接收的数据,方法是Servlet处理数据的方法。
3. 创建Servlet容器:在Web应用程序的根目录下创建Servlet容器的Java 文件,通常命名为`servlet-api.java`。
在Servlet容器的Java文件中,需要定义Servlet容器的接口和实现类。
4. 创建Servlet调用:在Web应用程序的HTML页面中,需要使用Servlet容器提供的API来调用Servlet。
例如,可以使用`<servlet>`标签来引用Servlet,然后使用`<servlet-name>`属性来指定Servlet的名称。
5. 编写Servlet代码:在Servlet的接口和实现类中,需要编写具体的响应和处理逻辑。
获得Spring的系统库包文件1、下载Spring的系统库包(1)进入到Spring的下载包有两种,一种是带有“with-dependencies”名称的,这种包含了Spring常用到的第三方包,比如Hibernate、aopalliance、jakarta-commons等。
这里就使用了这种包,可以省却查找第三方包的麻烦。
(2)解压其*.zip文件(3)所需要的*.jar包在其\dist和\lib目录下,包含有所需要的库●dist/spring.jar●lib/jakarta-commons/commons-logging.jar●lib/log4j/log4j-1.2.9.jar(4)参考文档解压这个包,可以在 docs\reference目录下找到Spring 的参考手册,有html和pdf两种格式。
如果你的英文不太好,可以看看Spring中文论坛翻译的1.1版本的中文版(pdf格式)。
这个参考手册就是入门的不二法宝。
(5)Spring中的主要的*.jar包文件的作用(注意:不同的版本可能会由差别!)2、将Spring的系统库包文件添加到JBuilder中(1)主要涉及spring.jar、commons-logging.jar和log4j-1.2.9.jar在JBuilder 中创建Spring的J2SE的应用1、新建一个J2SE 的 Project(1)名称为SpringJ2SEApp(2)不需要服务器的设置2、在该Project中添加一个应用的主类名称为SpringApplication,包名称为springj2seapp删除所产生的Java Swing的窗口类只需要主类package springj2seapp;public class SpringApplication{public SpringApplication(){}public static void main(String[] args){new SpringApplication();}}执行该J2SE应用,以观察是否有错误(只要能够正常执行就可以)3、构建Spring基础代码(1)添加一个接口Action该Action 接口定义了一个execute 方法,在我们示例中,不同的Action 实现提供了各自的execute 方法,以完成目标逻辑处理的功能。
编程该接口package springj2seapp;public interface Action{public String doTransfer (String inputStr);}为什么要面向接口编程而不是利用继承因为,继承是一种强的耦合关系,子类对父类有很大的可见性,即子类可以使用父类的方法阿,字段什么的,所以当父类变化时,势必对子类有影响。
(2)添加对该Action接口的两个实现类----UpperAction类编程该实现类,UpperAction将其message属性与输入字符串相连接,并返回其大写形式。
package springj2seapp;public class UpperAction implements Action{private String message;public String getMessage(){return message;}public void setMessage(String string){message = string;}public String doTransfer (String inputStr){return (getMessage() + inputStr).toUpperCase();}}(3)添加对该Action接口的两个实现类----LowerAction类编程该实现类,LowerAction将其message属性与输入字符串相连接,并返回其小写形式。
package springj2seapp;public class LowerAction implements Action{private String message;public String getMessage(){return message;}public void setMessage(String string){message = string;}public String doTransfer (String inputStr){return (getMessage()+inputStr).toLowerCase();}}注意:●面向接口编程是面向对象的核心,因此我们应该尽量要面向抽象编程。
●因为一个组件应该分为两部分:✓Service---所能够提供功能的声明✓Implementation---Service的具体实现这样的好处是:多实现可以任意切换,防止“everything depends on everything”问题.即具体依赖于具体。
●接口对外暴露方法,而实现接口的类对外隐藏方法Action oneAction =new LowerAction();这样,从外面看oneAction对象中的方法声明,只能看见Action的方法声明,而看不见LowerAction 实现类或者UpperAction 实现类中的内部方法实现。
4、配置该应用为满足Spring的要求(1)添加前面的Spring的库包到本项目中(2)Spring配置文件SpringApplication.xml由于Spring管理对象是依赖于配置文件,因此任何需要交给Spring管理的对象,都必须在配置文件中(文件名任意)注册,这个过程被称为wiring。
●请确保配置SpringApplication.xml位于工作路径之下(这种引用方式其配制文件只能相对于工作路径的引用),注意工作路径并不等同于CLASSPATH ,JBuilder的默认工作路径为项目根路径,也就是.project文件所在的目录。
●内容如下(对于Spring 1.2版)<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "/dtd/spring-beans.dtd"> <beans><description>Spring Quick Start</description></property></bean></property> </bean> </beans>● 内容如下(对于Spring2.0版)<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN""/dtd/spring-beans-2.0.dtd"> <beans><description>Spring Quick Start</description></property></bean><bean id="theLowerAction" class="springj2seapp.LowerAction"> </property> </bean> </beans> 注意:● 在此,通过使用bean 标签,注册了两个组件对象;然后我们只需要利用Spring 框架所提供的接口,加载配置文件,通过指定对象的id ,获得该对象。
● 在本例中只是为两个组件提供String 类型的数据的依赖注入;实际上我们可以注入任何值类型,也可以注入任何类的实例,也可以注入List 、Map 、Properties 。
● 配置文件管理了所有的对象和对象间的关系,而对象则只负责执行自己的功能,他们的职责越少,藕合度越低,系统就越容易测试,管理维护也更容易。
(3)关于<bean>标签中的id 和name 属性的问题每一个bean 都有一个id (也叫做标志符或名字)。
这些id 在管理bean 的BeanFactory 或ApplicationContext 中必须是惟一的。
在一个XmlBeanFactory 中(包括ApplicationContext 的形式),我们可以用id 或者name 属性来指定bean的id(s),并且在这两个或其中一个属性中至少指定一个id。
id属性允许我们指定一个id,并且它在XML DTD(定义文档)中作为一个真正的XML元素的ID属性被标记,所以XML解析器能够在其他元素指回向它的时候做一些额外的校验。
正因如此,用id属性指定bean的id是一个比较好的方式。
然而,XML规范严格限定了在XML ID中合法的字符。
因此,如果我们有必要使用这些字符(在ID中的非法字符),那么我们可以通过name属性指定一个bean的标识。
(4)log4j.propertiesSpring采用Apache common_logging,并结合Apache log4j作为日志输出组件。
为了在调试过程中能观察到Spring的日志输出,在CLASSPATH中新建log4j.properties配置文件。
●可以从samples/petclinic/war/WEB-INF/log4j.properties拷贝一份模板文件到本应用的classes目录中。
●设置其log输出的文件目录# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.log4j.rootLogger=INFO, stdout, logfilelog4j.appender.stdout=org.apache.log4j.ConsoleAppenderyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d %p [%c] - <%m>%nlog4j.appender.logfile=org.apache.log4j.RollingFileAppenderlog4j.appender.logfile.File=springapp.loglog4j.appender.logfile.MaxFileSize=512KB# Keep three backup files.log4j.appender.logfile.MaxBackupIndex=3# Pattern to output: date priority [category] - messageyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d %p [%c] - %m%n注意:上面的springapp.log文件将保存到项目的根目录下。