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

Category Archives: Java

使用IntelliJ IDEA开发SpringMVC网站(一)开发环境

转载请注明出处:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生)。 访问GitHub下载最新源码:https://github.com/gaussic/SpringMVCDemo   文章已针对IDEA 2016做了一定的更新,部分更新较为重要,请重新阅读文章并下载最新源码。 另外:文中的附图部分仍然为旧版本,请参照自身版本进行配置。 前言 由于近期一直在做学术方面的工作,项目开发相关工作并没有花太多的时间,导致这篇文章的更新停步了很长一段时间。现在应大家的要求,补上剩余部分,望能给大家带来一些帮助。由于时间的原因,在开发环境上面有了一定的更新,但是并不造成太大的影响。 一、相关环境 – Intellij IDEA 2016.2 Ultimate – Tomcat 8.0.35 – JDK 1.8.0_92 – Spring 4.2.6 – MySql 5.7 – Maven 3.3.9 – Bootstrap 3.3.5 以上是我要做的这个demo所需要的东西,当然有些是可选的,版本也是可控的。比如说如果你用不惯Maven的话可以自行去官网下载jar包然后导入自己的工程中,如果想要学习下Maven可以看看《Maven视频教程》(偶然找到,这个老师做的视频都挺好,推荐以下),不用完全的去学习Maven,懂大概意思后再去找找IntelliJ IDEA如何配置maven的相关文章就足够了。 还有Bootstrap,纯粹是个人洁癖,不需要这可以去之。 事先声明,请确保IntelliJ IDEA、Tomcat、MySql和JDK都已经安装好。Maven和Bootstrap的话能有则有。前者为了让导包更容易,后者为了让页面更美观。此外,由于jdk以及mysql的安装网上已经有了很多教程,在此为节省篇幅不做介绍。 二、本地Maven与Tomcat的安装 注:如果使用IntelliJ IDEA集成的maven 3.0.5的话,可以忽略此步安装。 1、下载并安装本地maven 点击“Apache-Maven官方网站”进入官网,点击左侧Download选项: 进入了下载页面,往下拉可发现当前版本是3.3.3,点击下面红框中的apache-maven-3.3.9-bin.zip就可下载,下载后解压缩到相应目录下: 新增系统变量MAVEN_HOME:即MAVEN安装目录: 在Path中加入:%MAVEN_HOME%\bin; 在cmd中输入mvn -v,若显示如下,则说明本地maven配置完成: 2、下载并安装本地Tomcat 进入Tomcat官网,点击左侧Download的Tomcat8.0,进入Tomcat的下载页面: 64位Windows版本下载64-bit Windows zip (pgp, md5, sha1),解压到所需目录下: 解压后到\bin\目录下运行startup.bat,如图下所示,如果出现Server startup in xxxx ms说明Tomcat安装成功。 三、创建Maven Web项目 前面说了这么多,差不多基本的东西都保障了(前提保证你已经安装了jdk)。现在进入正题,如何来创建一个Web项目。对于不使用Maven的开发者,可以直接建一个简单的Web项目。使用Maven的话,请按照图进行操作。 菜单File->New Project可进入上图界面,首先选择左边栏Maven,再配置JDK(一般如果之前添加了JDK的话会自动填充,如未添加的话点击旁边的New将JDK目录导入即可)。勾选“Create from archetype“,然后选中4处蓝色位置webapp,点Next,进入如下界面: 这里需要填写GroupId和ArtifactId还有Version,这三个属性目的是标识你的项目的唯一性,比如Tomcat的GroupId是org.apache,即它是apache组织的项目,ArtifactId是tomcat,项目名为tomcat,而我当前使用的Version是7.0.68。这些只在发布时有用,在此可以随便填写,填好后点Next,到如下界面。 打开Maven home directory,可以发现IntelliJ IDEA已经集成了Maven 2和Maven 3两个版本,如果使用默认集成的maven的话,选择Buldled(Maven 3),直接点击Next。 我们也可以导入本地新安装的较新的Maven版本,点击蓝色箭头右边的 … 按钮将Maven路径导入即可,点击Next: 填写项目名,选择项目保存路径,点击Finish: 进入如下界面,maven会在后台生成web项目,这需要等待一定的时间,视网络环境而定,经验发现用较新版本的maven项目生成更快,使用IDEA集成的maven可能会等待很长一段实践。 左边红框中展示了该项目的文件结构。可以发现,它在src/main下创建了一个recources文件夹,该文件夹一般用来存放一些资源文件,还有一个webapp文件夹,用来存放web配置文件以及jsp页面等,这已经组成了一个原始的web应用。选择右边红框的Enable-Auto-Import,可以在每次修改pom.xml后,自动的下载并导入jar包,这一点在后面详述。 注:如果这一步生成实在太慢的话,建议看一下以下两篇(感谢26楼 wintersun2 同学的提出): 文章1: http://www.cnblogs.com/beiyeren/p/4566485.html 文章2:http://blog.csdn.net/cleverlzc/article/details/50864582 四、Maven自动导入jar包 既然我们要用SpringMVC开发,那肯定少不了SpringMVC的相关jar包。如果不使用Maven的话,那就需要去官网下载相关的jar包,然后导入到项目中。现在使用maven的话,就不需要上网找jar包了。具体容我一一道来。 Maven所做的工作其实很简单,就是自动把你需要的jar包下载到本地,然后关联到项目中来。maven的所有jar包都是保存在几个中央仓库里面的,其中一个最常用的是Maven Repository,即,你需要什么jar包,它就会从仓库中拿给你。那么如何告诉maven需要什么jar包呢?我们看看工程目录,能找到一个pom.xml文件(这个文件在刚创建好项目时就已经展现在了大家面前),maven就是靠它来定义需求的,代码如下:

  我们可以看到这个文件包含了我们之前定义的本项目的gropId等信息,这些信息是该项目的标识,我们不要去改动它们。重点看<dependencies>标签,翻译过来是”依赖“的意思,也就是说把对每个包的需求都称为一个依赖<depedency>,定义在<dependencies>中。在每个<depedency>中,你需要提供的是所需jar包的groupId、artifactId、version这三个必要信息。比如上面我们看到引入可一个junit包,格式如下: […]

龙生   21 Oct 2017
View Details

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
1 53 54 55 62