项目搭建并运行hello world程序

2018年01月04日 09:34 | 3380次浏览 作者原创 版权保护

今天查看邮箱,看到有好几个初学者说spring4.0教程利用maven项目搭建失败,然后自己尝试着又试了下搭建成功,在这里再次累述一遍项目搭建过程。关于maven项目的大家我也是跟着一个博客上面写的步骤搭建的,再这里借用一番。本人感觉已经写的比较清楚了。

MyEclipse中创建新的Maven项目(webapp目录结构)过程如下:

1. New -> Project... -> Maven Project

2. Next, 

3. Next, 选择“maven-archetype-webapp”创建一个webapp目录结构的项目

4. 填Group Id,Artifact Id,和Package(请参考后面的“关键词”),点击“Finish”

5. 休息片刻,等待MyEclipse创建项目

6. (如果不喜欢现在的文件名)修改项目名称和存放路径:项目右键 -> refactor -> rename


7. 添加代码目录:

注:如果是MyEclipse2015,只需要在Java Build Path -> Libraries 中,把JRE System Library修改为“Workspace default JRE”就可以自动有那些目录了,无需下面的操作。

项目右键 -> Build Path -> New Source Folder...,填写“src/main/java”

(注:MyEclipse2015没有这个菜单,直接这样就行:项目右键 -> New -> Folder ->Folder Name 输入 "src/main/java",然后重复步骤输入“src/test/java”)

添加后,test目录也自动有了:

最终的项目目录结构如下:


关键词:

GroupId:一般是公司名或组织名

ArtifactId:一般是project名

Packaging:打包类型,jar/war/rar/ear/pom等,默认是jar

Version:版本号,GroupId+ArtifactId+Packaging+Version构成项目的唯一标识

Snapshot:标识一个正在开发阶段、会经常更新、但尚未发布的版本

<dependency management>和<dependencies>的区别:

在父POM中用<dependency management>定义好version, scope, 和exclusions后,可以被子POM中用<dependencies>定义的依赖所继承使用。这样,如果有多个子POM的话,可以确保用同一套version, scope, 和exclusions。

Dependency Scope:

  • compile: 默认的scope。编译、测试、打包全都需要。compile参与依赖传递,就是说,项目A依赖于B(依赖scope是compile),项目C依赖于你的项目A,那么C也就依赖于B。

  • provided: 表示JDK或者容器会在Runtime时提供这些(jar),如servlet api,部署时是不需要它的,因为应用服务器肯定有这些东西。provided的东西在编译和测试时会用到,不参与传递依赖。

  • runtime: 表示编译时不需要,但测试和运行时需要,最终打包时会包含进去。

  • test: 只用于测试阶段(测试的编译和测试的运行),典型的就是junit的jar。

  • system: 和provided类似,但要求jar是系统里已有的,不会在repository里找,如rt.jar,tools.jar这些。

  • import: 简单的说,项目的pom可以继承另一个项目的pom,从而继承了父项目的依赖关系,但是因为之后single inheritance的限制,所以创造了import,使得你可以“导入”或者说“继承”任何一到多个项目的依赖关系。


找不到或无法加载主类

本人根据上述方法搭建好maven项目,运行main方法出现“找不到或无法加载主类”的错误,然后又在网上搜罗了好久最终解决,解决办法如下:

首先在"src/main/java"目录上右键--》Build path-->User as Source Folder, 然后在此目录下新建包com.spring


然后右键 com.spring包--》Build path--》Configure Build path-->如下图

如上图所示,选中Output folder:....点击按钮"Edit",设置如下图

点击“ok”,然后运行main方法,完美解决问题。


spring环境搭建

pom.xml中引入依赖

<!-- 引入spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.2.4.RELEASE</version>
    </dependency>

创建springApplication.xml ,存放路径如下图

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
 default-autowire="byName" default-lazy-init="true">
  
  
 <bean id="hello" class="com.spring.Hello">
   <property name="springhello" value="Spring...."></property>
 </bean>
  
  
</beans>

由于项目类包建在com.spring下,所以上述xml中class设置为“com.spring.Hello”

创建类:Hello.java

package spring;

public class Hello {
	
	    private String springhello;
	 
	    public Hello() {
	        super();
	        System.out.println("constractor.....");
	    }
	 
	    public String getSpringhello() {
	        System.out.println("getSpringhello:"+springhello);
	        return springhello;
	    }
	 
	    public void setSpringhello(String springhello) {
	        this.springhello = springhello;
	    }
	     
	    public void syso(){
	        System.out.println("水平。。。"+springhello);
	    }
}

主函数:MainTest.java

package spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		{
	        //创建hllo这样的一个对象
	         Hello hello = new Hello();
	         //为springname属性赋值
	         hello.setSpringhello("你好");
	          
	          
	              //1.创建spring IOC容器对象
	         ApplicationContext applicationContext = new ClassPathXmlApplicationContext("springApplication.xml");
	          
	          //2.从IOC容器中获取Bean实例对象
	        // Hello hello2 = (Hello) applicationContext.getBean("hello");
	           //3.调用hello方法
	        // hello2.syso();
	           
	    }
	}

}

运行:eclipse右键 run javaapplication....

出现上图输出代表着spring环境搭建已经成功!




小说《我是全球混乱的源头》
此文章本站原创,地址 https://www.vxzsk.com/449.html   转载请注明出处!谢谢!

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程