发表于: 2017-07-02 20:10:56
1 1418
今天完成的事情:学习idea创建maven项目springmvc,解决了tomcat的问题。并且把这两三天你的大坑搞出来原因了,在师兄讲解下也学了使用maven项目下用pom.xml去引用依赖包。
今天师兄安排我按照例子一个不差的步骤执行这个springmvc实现他的功能,我在例子上很多都看不懂。而且下载来的源码很多都打开不了,不知道怎么回事,而且我还下载了其他的例子打开发现,idea打开或者创建maven项目非常的慢,经常会卡在哪里,以为没有问题,实在受不了,查之发现。一开始因为这个很慢的问题,导致我在学习的过程中很大的问题存在。这个坑对于我来说非常的大。由于默认情况下,根据archetype创建maven项目会从网络下载catalog文件,导致创建maven项目缓慢。
解决办法可以设置使用本地catalog文件,在IDEA中设置archetype的使用方式为local;也可以吧archetype方式设置为Internal。目前这两种方法都可以的。
首先是在是用local的方式,在setting中设置好
在本地m2仓库下安置好下的catalog文件
就这样就可以了
还有第二种办法:
这个是在不需要配置catalog文件也可以解决
这两个设置好
接下来就是创建一个maven管理的springmvc。在idea中,而且在这之前需要用到在setting中设置好maven的获取catalog文件的方式。不然后面如何设置都是徒劳,tomcat也无法正确执行,但是自己还是不太懂这个运行的原理。
一直next。设置好项目的名称啊输出路径等等,idea会自动帮我生成相应的配置文件,我在博客中看到别人会有这个选项,我不知道自己为什么会没有,很奇怪,我创建好后直接跳到编译界面开始工作的。
当我创建好了环境之后,我就需要修改我pom.xml,引入相关的依赖
<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.yiibai</groupId>
<artifactId>HelloSpringMVC</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>HelloSpringMVC Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- Servlet Library -->
<!-- http://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- Spring dependencies -->
<!-- http://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<!-- http://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
</dependencies>
<build>
<finalName>HelloSpringMVC</finalName>
<plugins>
<!-- Config: Maven Tomcat Plugin -->
<!-- http://mvnrepository.com/artifact/org.apache.tomcat.maven/tomcat7-maven-plugin -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<!-- Config: contextPath and Port (Default - /HelloSpringMVC : 8080) -->
<!--
<configuration>
<path>/</path>
<port>8899</port>
</configuration>
-->
</plugin>
</plugins>
</build>
</project>
配置 web.xml:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>HelloWorldSpring</display-name>
<servlet>
<servlet-name>spring-mvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring-mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Other XML Configuration -->
<!-- Load by Spring ContextLoaderListener -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/root-context.xml</param-value>
</context-param>
<!-- Spring ContextLoaderListener -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
· spring-mvc-servlet.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
<context:component-scan base-package="com.yiibai.tutorial.springmvc"/>
<context:annotation-config/>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/pages/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
注:
在Spring应用程序 ContextLoaderListener 将读取其他 XML 配置文件(如下的 abc.xml 和 root-context.xml 两个文件)。 可能不需要配置 ContextLoaderListener,如果你的应用程序并不需要读取其他XML配置文件。
<!-- web.xml -->
<!-- Spring ContextLoaderListener -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Load by Spring ContextLoaderListener -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/root-context.xml,
/WEB-INF/abc.xml
</param-value>
</context-param>
· /WEB-INF/root-context.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Empty -->
</beans>
· HelloWorldController.java
package com.yiibai.springmvc;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloWorldController {
@RequestMapping("/hello")
public String hello(Model model) {
model.addAttribute("greeting", "Hello Spring MVC");
return"helloworld";
}
}
· helloworld.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Spring4 MVC -HelloWorld</title>
</head>
<body>
<h1>${greeting}</h1>
</body>
</html>
然后,接下来就是用idea配置tomcat去运行程序了,选择run下的edit configurations
选择哪个“+”号 ,拉到最下面看到tomcat server,选择local会跳转到设置页面
把端口啊,浏览器,tomcat版本路径的选择,全部设置好后,还有一项很重的fix设置,这个东西我不知道是个什么东西,但是他很重要,他没设置好都启动不了tomcat的。
在deployement中,右边的“+”号,添加Artifact
选择这个相应的war包??
在设置一个东西这个斜杠
设置好点apply 点ok 就可以运行了。在之前setting中设置maven 的catalog文件,创建项目,pom引入依赖速度提升的不是一个两个档次,最后可以跳出浏览器的结果
贴一个网上教程,第一次使用这个功能,之前一直觉得这个功能很麻烦,不会用
maven会自动创建需要的一些配置信息以及目录结构,在这段时间里我们可以查找需要的jar包并在maven配置文件pom.xml里面进行配置,见下面步骤:
这里如果不知道要用到什么jar包就去百度SpringMVC需要的jar包,然后在maven的官方链接单独查找jar包来配置pom.xml,实例如下(这里我示范去maven官网查找xml配置的部分,具体需要的jar包去我后面展示的pom.xml里面查找):
登录http://mvnrepository.com/ 示例查找spring-beans
点击查找结果
这里可以看到最新版以及使用人数最多的版本,自己选择--配置文件里面的jar包版本最好选择同一个版本避免版本冲突;
我们选择第一个进入网页,里面可以看到maven的配置pom.xml文件写法,点击代码直接复制(自动复制);
然后将复制的代码拷贝到pom.xml文件中去即可,maven会自动下载所需要的jar包,我们不需要理会(如果有网络不顺畅情况,请自行想办法下载jar包或联系本人,然后将下载好的jar包拷贝到对应的maven本地仓库文件夹中也可以的);
明天完成的事情:消化一下springmvc,在深度学习,把服务器搞下来,并且试试部署打包我的程序。终于可以实施后面的东西了。很高兴
遇到的问题:1.就是maven项目创建和加载过程中非常的慢,不过已经解决了。
2.不能太理解springmvc的构造,只是知道那么一点点,而且idea会帮我们在过程是自动创建好。如果出现什么问题,我自己会不知道哪里下手修改。
收获:学习在pom文件下引入依赖包。解决了了idea中创建maven项目慢的过程。并且成功运行我的web文件。
评论