今天突然想要做一个网站,打算采用SpringMVC(4.1.5.RELEASE)+Hibernate(4.3.8.Final)作为主要框架,来试试效果。
先贴出Maven的部分代码:
<properties> <spring-version>4.1.5.RELEASE</spring-version> <hibernate-version>4.3.8.Final</hibernate-version> ... </properties> <dependencies> <!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring-version}</version> <type>jar</type> <scope>test</scope> </dependency> <!-- hibernate --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>${hibernate-version}</version> </dependency> ... </dependencies>
接下来我就从头说一遍我是如何全部搭好这个工程的。
首先,当然是打开eclipse,建一个Maven工程,选择对应的webapp maven模板,完成后一个空的Maven工程就出来了。
我这个eclipse建出来的目录不全,不知道大家是不是也是这种情况,我说一下我的解决办法,先去查看Project右键->Properties->Java Build Path->Source选项卡,这里面有当前目录的映射,有文件夹显示miss,我就用windows把那些miss的目录都创建出来了。
目录结构:
--src/main/java
--src/main/resources
--src/test/java
--src/test/resources
目录建完了之后又看到工程目录最上面有个2.3显示在那,这个是Dynamic Web Module的版本,Project右键->Project Facets这里头显示了版本,不过似乎改不了。经我百度一查,各位网友给出的意见是修改配置文件,配置文件在工程根目录下的.setting文件夹中,文件名叫org.eclipse.wst.common.project.facet.core.xml。 里面直接把2.3改成3.1,重启eclipse,还有改一改web.xml文件的配置
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee /web-app>
,这里主要是修改了命名空间的文件版本。当然我这2.3改3.1完全是自己折腾,想试试新的嘛,也可以不换的。
那么这些都弄好了以后该把框架用起来了,我先把Spring MVC放进来。先往web.xml文件中放入下面一段代码
<!-- Spring MVC Servlet --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/main/*</url-pattern> </servlet-mapping>
这个就把SpringMVC的DispatcherServlet配置进来了。其中有一个springmvc-config.xml的文件,这是springmvc的配置文件,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" 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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <context:component-scan base-package="cn.com.myweb" /> <mvc:annotation-driven enable-matrix-variables="true" /> </beans>
在这里我说一下,我打算把配置能弄成注解的就弄成注解,主要是看看都用注解的话会有什么样的一个问题,若您不想用注解,可以找找其他地方的配置。
接下来就是建类文件了:
@Controller public class UserController{ @RequestMapping(value = "/login", method = RequestMethod.GET) public String login() { System.out.println("Hello,World!"); return "/index.jsp"; } }
配置完后,发布试试,找找感觉。
这一部分比较简单,先写这么多,后续写整合hibernate的部分。有问题可以留言我,因为我已经整合完了,这是边看代码边写的总结。