一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Java

Apache Ant的使用(1)——基础使用教程

一、什么是Ant 以下介绍来自百度百科: Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。由Apache软件基金会所提供。 我们在使用Eclipse开发Android应用时,Eclipse使用的项目构建工具就是Ant。 用户群:大多数的Java设计都被用于管理大量信息流,例如纽约州就使用Apache Ant去管理美国最大的青年计划,每天可以实时更新超过25万学生的记录。 只要使用过Linux系统的读者,应该知道 make这个命令。当编译Linux内核及一些软件的源程序时,经常要用这个命令。Make命令其实就 是一个项目管理工具,而Ant所实现功能与此类似。像make,gnumake和nmake这些编译工具都有 一定的缺陷,但是Ant却克服了这些工具的缺陷。最初Ant开发者在开发跨平台的应用时,同样也 是基于这些缺陷对Ant做了更好的设计。 二、Ant的优点 Ant是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点: 跨平台性。Ant是纯Java语言编写的,所以具有很好的跨平台性。 操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。 Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。由于Ant构建文件 是XML格式的文件,所以很容易维护和书写,而且结构很清晰。Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环 境中去。 三、Ant的基本使用方法 下面介绍Ant的基本使用方法: 1、首先需要从官网下载apache ant,地址为:http://ant.apache.org/bindownload.cgi 2、下载后的压缩文件直接解压后放到硬盘的目录下就行,然后是配置Ant的环境变量,因为我们需要在命令行下使用ant命令,所以需要将ant的目录加入path环境变量中,步骤如下(windows10系统): (1)鼠标右击桌面“此电脑”,选择属性,然后在出现的窗口左侧选择“高级系统设置”,在弹出的窗口中选择“环境变量” (2)在环境变量配置窗口中的“用户变量”中新增一个变量名为ANT_HOME,值为Ant解压后的目录,如下图所示: 然后在“用户变量”下找PATH变量,如果没有就新增一个PATH变量,如果有就直接在PATH变量中加入新的值,值为“%ANT_HOME%\bin” 经过上面2步就配置好了Ant的环境变量了,cmd中执行ant -version命令后,如下图所示则表示配置成功: 3、开始使用Ant。 Ant的核心就是配置文件build.xml,在build.xml文件中配置相关的任务后,使用ant命令即可自动执行,所以我们需要掌握ant的相关配置,这里先在桌面新建一个目录TestAnt,然后进入该目录,新建一个build.xml文件,并加入如下内容: [html] view plain copy <?xml version="1.0"?> <project name="HelloWorld" default="test" basedir="">     <target name="test">         <echo message="test echo messsage, basedir=${basedir}" />     </target> </project> 在命令行下我们进入上面build.xml所在的目录,然后执行ant命令,会出现如下图所示的结果: 下面就来解释上面的build.xml文件的配置: (1)build.xml需要遵循一定的格式,这样ant命令才能正确执行,一个build.xml文件是以<project>标签为根节点的,<project>节点中可以指定name属性,表示项目的名称,basedir代表项目的根目录,default表示项目的默认任务名,这里的default属性值为test,则执行ant命令时会找default对应的target去执行(如果ant命令没有指定任务名的话)。 (2)<project>标签中定义了一个<target>标签,该标签表示的就是一个任务,<target>标签中的name属性表示任务名,我们可以在命令行下直接使用ant + 任务名来执行某个特定的任务,例如上面的例子中,我们可以使用ant test命令去执行name值为test的target任务,由于我们在<project>标签中配置了default属性为test,所以在命令行下只需要执行ant命令就可以运行test任务了。 (3)<echo>标签表示在命令行下输出,类似于java中的System.out.println(),在<echo>标签中配置message属性后即可在命令行下打印该属性的值。如上图中显示的[echo],即为我们配置的message属性的值。 (4)使用${}可以获取某个变量的值,花括号中为变量名,如上图中打印出的C:\Users\yubo7\Desktop\TestAnt,即为basedir的值,由于在<project>标签中我们给basedir属性的值为空,所以basedir的值默认为build.xml所在的路径。 上面的例子是一个最基本的build.xml文件的结构,build.xml文件还有很多配置项,下面举例几个配置项: <property>标签,用于声明键值对: [html] view plain copy <?xml version="1.0"?> <project name="HelloWorld" default="test" basedir="">     <target name="test-property">         <property name="name" value="zhangsan" />         <property name="age" value="25" />         <echo message="this is target test2." />         <echo message="java version: ${ant.java.version}" />         <echo message="project name: ${ant.project.name}" />         <echo message="ant file: ${ant.file}" />         <echo message="name = ${name}, age = ${age}" />     </target> </project> 执行ant test-property命令后,结果如下图: <property>标签用于声明一个属性,其中name为属性名,value为属性值,访问属性值时使用${属性名}。 <copty>标签,用于文件拷贝: [html] view plain copy <?xml version="1.0"?> <project name="HelloWorld" default="test" basedir="">     <target name="test-copy">         <copy file="test.txt" tofile="build/test.txt" />     </target> </project> 执行ant test-copy命令后,结果如下图所示: <copy>标签表示文件或文件夹的拷贝,上面的配置中,file属性表示要拷贝的文件路径,tofile属性表示要拷贝的目的文件路径。如果待拷贝的文件不存在,则命令执行会失败,如果目的文件路径不存在,则命令执行时会自动创建目录。如果是要拷贝整个目录,需要下面的配置: [html] view plain copy <?xml version="1.0"?> <project name="HelloWorld" default="test" basedir="">     <target name="test-copy-dir">         <copy todir="build/dest_dir">             <fileset dir="origin_dir" />         </copy>     </target> […]

龙生   21 Oct 2017
View Details

严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderList

最近在用idea部署war文件的时候,总是出现了部署失败的错误,刚开始并没有在意,但是现在次数越来越多了,不得不在意了,然后就在百度上搜,然后就有了各种说法 1,错误的信息是:

根据错误信息,说是一个listener加载失败了,失败原因请看容器log文件,我的idea配置的tomcat是自己的本地的tomcat,然后进本地的目录一瞅,木有,那么这个日志放在哪里了?然后就开始找这个日志文件在哪里。开始百度。。。 经历过种种百度,然后最后得出的结果是在这里

好了,第一步完成,找到了日志文件,那么日志文件里面的错误信息是什么呢?首先,有下面几个日志信息 根据时间来看,那就看catalina和localhost这两个吧,最后在locaohost的log文件里找到了这样的一句话:

意思就是说contextloaderlistener这个class没有加载成功,说是配置的问题,然后继续百度,有一下几种情况 1,listener的配置要放在servlet前面,我看我的配置文件,的确是这样的, 2,就是tomcat缓存问题,把project的tomcat去掉后重新部署上去,我试了试,不行 3,说是没有spring的包,我想着一会好,一会不好的,如果真的是spring包的话,那应该就一直不好,所以排除了,(结果这里出现问题了) 4,重新安装tomcat,这个方法我没有试,不知道效果如何 突然,在论坛里看有人说看看你的tomcat服务器里的项目的web-info\lib下有没有这个包,然后我一查,果然没有spring的包。好的,这里问题算是找到了。就是因为这个没有包才导致的。 这个就提醒我了,不管项目上是不是加载了依赖包,如果部署到服务器上没有依赖的那个包,那就是白搭,肯定会出问题的。 最终我的web-inf\lib里面的目录结果如下 然后开启debug,成功。   上面五种方法起个参考作用,主要是第五种,用事实来说话。我的项目是idea分模块的,具体的怎样加到Lib里可以百度。   解决问题的过程是令人痛苦的,解决后感觉原来是这样啊。 from:http://www.cnblogs.com/ningheshutong/p/6490167.html

龙生   20 Oct 2017
View Details

解决Perhaps you are running on a JRE rather than a JDK?问题

Maven-No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? [INFO] Scanning for projects… [INFO] [INFO] ———————————————————————— [INFO] Building helloworld 0.0.1-SNAPSHOT [INFO] ———————————————————————— [INFO] [INFO] — maven-clean-plugin:2.5:clean (default-clean) @ helloworld — [INFO] Deleting H:\mavenok\helloworld\target [INFO] [INFO] — maven-resources-plugin:2.6:resources (default-resources) @ helloworld — [INFO] Using ‘UTF-8‘ encoding to copy filtered resources. [INFO] skip non existing resourceDirectory H:\mavenok\helloworld\src\main\resources [INFO] [INFO] — maven-compiler-plugin:3.1:compile (default-compile) @ helloworld — [INFO] Changes detected – recompiling the module! [INFO] Compiling 1 source file to H:\mavenok\helloworld\target\classes [INFO] ————————————————————- […]

龙生   20 Oct 2017
View Details

pom.xml出现web.xml is missing and is set to true解决方案

提示信息应该能看懂。也就是缺少了web.xml文件,<failOnMissingWebXml>被设置成true了。 搜索了一下,Stack Overflow上的答案解决了问题,分享一下。 目前被顶次数最多的回答原文如下: This is a maven error. It says that it is expecting a web.xml file in your project because it is a web application, as indicated by <packaging>war</packaging>. However, for recent web applications a web.xml file is totally optional. Maven needs to catch up to this convention. Add this to your maven pom.xml to let maven catch up and you don’t need to add a useless web.xml to your project: 大意是说这是一个Maven错误,在最近的web应用开发中web.xml文件已经变得可有可无了。不过Maven还没有跟上这一变化,我们只要在pom.xml文件中手动添加如下配置:

“告知”maven即可。这样做的好处是我们不必在项目生中成一个无用的web.xml文件。在更新版本(具体从哪一个版本开始我也不知道~~)的maven中已经不存在web.xml文件缺失的问题,我们只需要处理<failOnMissingWebXml>被设置成tue的问题即可。也就是在pom.xml中添加如下配置即可。

其他方案:(生成web.xml——>部署运行时文件路径) you can do it also like this: Right click on Deployment Descriptor in Project Explorer. Select Generate Deployment Descriptor […]

龙生   20 Oct 2017
View Details

SpringBoot

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。 特点 1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置 4. 自动配置Spring 5. 提供生产就绪型功能,如指标,健康检查和外部配置 6. 绝对没有代码生成和对XML没有要求配置

龙生   20 Oct 2017
View Details

Groovy

Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。 Groovy 是 用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。 Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。(注意:不是指Groovy替代java,而是指Groovy和java很好的结合编程。

龙生   19 Oct 2017
View Details

支持响应式编程 Spring Framework 5.0 稳定版正式发布

Spring Framework 5.0 GA 稳定版已正式发布。 经过一年多的里程碑版和 RC 版,以及将近两年的开发,Spring Framework 5.0 GA 稳定版现已正式发布。可从 repo.spring.io 和 Maven Central 获得。 这个全新一代的框架带来了以下新特性: 支持 JDK 9 和 Java EE 8 级别的 API(如 Servlet 4.0) 与 Reactor 3.1, JUnit 5, 和 Kotlin 语言的全面集成 带来了许多函数式 API 变体 (functional API variants) 响应式堆栈 Web 框架 —— Spring WebFlux 此外,值得注意的是,整个 Spring Framework 5.0 代码库运行于 Java 8 之上。因此 Spring Framework 5.0 对环境的最低要求是 Java 8。 可以看到,Spring Framework 5.0 的亮点是响应式编程,这是一个重要的范式转变。随着响应式编程越来越受欢迎,我们可以期待越来越多的技术将实现响应式解决方案。 相关链接: Spring Framework 5.0 中的新功能 迁移到 Spring Framework 5.0 官方的 Spring Framework 5 FAQ 最新的参考文档 更多内容请参阅发布主页和详细更新说明。 Maven

Gradle

下载地址: http://projects.spring.io/spring-framework/ Source code (zip) Source code (tar.gz) 相关链接 […]

龙生   01 Oct 2017
View Details

Eclipse下导入外部jar包的3种方式

我们在用Eclipse开发程序的时候,经常要用到第三方jar包。引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间。下面配图说明3种Eclipse引入jar包的方式。 1.最常用的普通操作方式:基本步骤式 右击“项目”→选择Properties,在弹出的对话框左侧列表中选择Java Build Path,如下图所示:选择Add External JARs,就可以逐个(也可以选择多个jar,但是限制在同一个文件夹中)添加第三方引用jar包。     上面这种方式的操作具有通用性,但是每次创建项目,都需要重新引入Jar包,Jar包不具有可重用性。 2.快速版的操作方式:用户Jar包式 右击“项目”→选择Properties,在弹出的对话框左侧列表中选择Java Build Path,弹出如上图所示的对话框,这里选择"Add Library",弹出如下图所示对话框,选择"User Library",然后选择→Next   在出现的对话框中,可以选择已经创建好的用户自定义库,也可以选择User Libraries,弹出的新对话框中选择"New",创建新的用户自定义库。   在待创建用户自定义库中,输入新的自定义库的名字,如下图   然后为新库,添加所需的Jar包 按上述步骤添加好用户自定义库后,以后可以重用这些已定义好的User Library库,为开发节省时间。   3.快速版的操作方式:文件夹导入式 在项目中,创建新的文件夹(eg:ibatis_jar),如下图所示,本示例中创建了ibatis_jar文件夹 ,并将项目开发需要的第三方的jar包拷贝到该文件夹中。 选中需要添加到项目中的jar包,右键选择"Build PathàAdd to Build Path",这样Jar包就成功导入到项目中了。 第三种导入Jar包的方式比第二种更简单,而且重用性更强,当我们不同的机器上查找所需的Jar包时,将这些文件夹直接拷贝就可以。 暂时对Eclipse导入jar包有这些浅显的理解,随着经验的积累,对Eclipse引入jar包各种方式的区别会理解的更深入! FROM:http://blog.csdn.net/mazhaojuan/article/details/21403717

龙生   27 Sep 2017
View Details

apache commons

Apache Commons是Apache软件基金会的项目,曾隶属于Jakarta项目。Commons的目的是提供可重用的、开源的Java代码。 Apache Commons项目的由三部分组成: The Commons Proper – 一个可重用的Java组件库。(已经发布过的) The Commons Sandbox – Java组件开发工作区. (正在开发的项目) The Commons Dormant – 当前处于非活动状态的组件库.(刚启动或者已经停止维护的项目) 建立和维护可重用的Java组件。使用组件可以提高开发效率和质量。

龙生   27 Sep 2017
View Details

史上最全最强SpringMVC详细示例实战教程

一、SpringMVC基础入门,创建一个HelloWorld程序
二、配置解析
三、SpringMVC常用注解
四、自动匹配参数
五、自动装箱
六、使用InitBinder来处理Date类型的参数
七、向前台传递参数
八、使用Ajax调用
九、在Controller中使用redirect方式处理请求
十、文件上传
十一、使用@RequestParam注解指定参数的name
十二、RESTFul风格的SringMVC
十三、返回json格式的字符串
十四、异常的处理
十五、设置一个自定义拦截器
十六、表单的验证(使用Hibernate-validate)及国际化
十七、压轴大戏--整合SpringIOC和SpringMVC
十八、SpringMVC详细运行流程图
十九、SpringMVC运行原理
二十、SpringMVC与struts2的区别

龙生   26 Sep 2017
View Details
1 58 59 60 67