您的位置:首页 > 编程语言 > Java开发

SrpingMvc_mybatis_maven搭建web项目

2016-03-31 16:52 369 查看
 一、配置maven的环境

1.第一步

下载地址: http://maven.apache.org/download.cgi (window下载(Binary zip)的)

win系统下载选中的就可以,其他系统下载相应的文件

2.第二步

下载好maven后放到相应的地址里面解压出来为下面的工作做准备

3.第三步

配置maven的环境变量

找到你的计算机右键--》属性--》选择高级系统配置

M2_HOME--》D:\spring_springmvc_mybatis_mave\apache-maven-3.3.9-bin\apache-maven-3.3.9

这是下载的maven的地址配置好了

在path前面或后面加上     %M2_HOME%\bin;  (不要忘记分号英文的)

这样我们就配置好了环境变量   下面在cmd 里面来测试下 是否好用

能看到下面这些信息就说明maven的环境变量配置好了

4.第四步

找到里面的set配置文件这是你的仓库配置文件,用来生成下载相应文件

下面我们来配置本地的仓库位置,打开setting文件

这是我配置的这个项目的本地仓库

5.第五步

下面说一下项目过大的情况下出现内存溢出  可以配置下这个环境:(这是网上找了的 ,如果有哪位小伙伴测试了好用告诉我哦  本人没有测试。。。)

6.第六步

配置myeclipse

window--》preference

这样引用自己的maven地址

7.第七步

创建maven项目

在你的工作空间里面   右键--》new--》Other--》maven--》maven project

用默认的就可以   直接下一步  

这样直接finish就ok了

这是创建好的目录

做相应的目录

下面来看一下具体的配置文件

db.properties--》这个文件是测试数据库的表和简单的数据

 DROP TABLE IF EXISTS `user_t`;  

 

CREATE TABLE `user_t` (  

  `id` int(11) NOT NULL AUTO_INCREMENT,  

  `user_name` varchar(40) NOT NULL,  

  `password` varchar(255) NOT NULL,  

  `age` int(4) NOT NULL,  

  PRIMARY KEY (`id`)  

) ENGINE\=InnoDB AUTO_INCREMENT\=2 DEFAULT CHARSET\=utf8;  

 

/*Data for the table `user_t` */  

 

insert into `user_t`(`id`,`user_name`,`password`,`age`) values (1,'\u4EC0\u4E48','sfasgfaf',24);

创建一张简单的表

jdbc.properties--》数据库的连接配置

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/qqjrbj

username=root

password=root

#定义初始连接数

initialSize=0

#定义最大连接数

maxActive=20

#定义最大空闲

maxIdle=20

#定义最小空闲

minIdle=1

#定义最长等待时间

maxWait=60000

log4j.properties--》log4j的配置

#\u5B9A\u4E49LOG\u8F93\u51FA\u7EA7\u522B

log4j.rootLogger=INFO,Console,File

#\u5B9A\u4E49\u65E5\u5FD7\u8F93\u51FA\u76EE\u7684\u5730\u4E3A\u63A7\u5236\u53F0

log4j.appender.Console=org.apache.log4j.ConsoleAppender

log4j.appender.Console.Target=System.out

#\u53EF\u4EE5\u7075\u6D3B\u5730\u6307\u5B9A\u65E5\u5FD7\u8F93\u51FA\u683C\u5F0F\uFF0C\u4E0B\u9762\u4E00\u884C\u662F\u6307\u5B9A\u5177\u4F53\u7684\u683C\u5F0F

log4j.appender.Console.layout = org.apache.log4j.PatternLayout

log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n

#\u6587\u4EF6\u5927\u5C0F\u5230\u8FBE\u6307\u5B9A\u5C3A\u5BF8\u7684\u65F6\u5019\u4EA7\u751F\u4E00\u4E2A\u65B0\u7684\u6587\u4EF6

log4j.appender.File = org.apache.log4j.RollingFileAppender

#\u6307\u5B9A\u8F93\u51FA\u76EE\u5F55

log4j.appender.File.File = logs/ssm.log

#\u5B9A\u4E49\u6587\u4EF6\u6700\u5927\u5927\u5C0F

log4j.appender.File.MaxFileSize = 10MB

# \u8F93\u51FA\u6240\u4EE5\u65E5\u5FD7\uFF0C\u5982\u679C\u6362\u6210DEBUG\u8868\u793A\u8F93\u51FADEBUG\u4EE5\u4E0A\u7EA7\u522B\u65E5\u5FD7

log4j.appender.File.Threshold = ALL

log4j.appender.File.layout = org.apache.log4j.PatternLayout

log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

spring-mvc.xml--》springmvc的配置

<?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-3.1.xsd  

                        http://www.springframework.org/schema/context  

                        http://www.springframework.org/schema/context/spring-context-3.1.xsd  

                        http://www.springframework.org/schema/mvc  

                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
    <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->

    <context:component-scan base-package="com.x_tie.controller" />

    <!--避免IE执行AJAX时,返回JSON出现下载文件 -->

    <bean id="mappingJacksonHttpMessageConverter"

        class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">

        <property name="supportedMediaTypes">

            <list>

                <value>text/html;charset=UTF-8</value>

            </list>

        </property>

    </bean>

    <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->

    <bean

        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">

        <property name="messageConverters">

            <list>

                <ref bean="mappingJacksonHttpMessageConverter" />    <!-- JSON转换器 -->

            </list>

        </property>

    </bean>

    <!-- 定义跳转的文件的前后缀 ,视图模式配置-->

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->

        <property name="prefix" value="/WEB-INF/" />

        <property name="suffix" value=".jsp" />

    </bean>

    

    <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->

    <bean id="multipartResolver"  

        class="org.springframework.web.multipart.commons.Commons
4000
MultipartResolver">  

        <!-- 默认编码 -->

        <property name="defaultEncoding" value="utf-8" />  

        <!-- 文件大小最大值 -->

        <property name="maxUploadSize" value="10485760000" />  

        <!-- 内存中的最大值 -->

        <property name="maxInMemorySize" value="40960" />  

    </bean>

</beans>

spring-mybatis.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-3.1.xsd  

                        http://www.springframework.org/schema/context  

                        http://www.springframework.org/schema/context/spring-context-3.1.xsd  

                        http://www.springframework.org/schema/mvc  

                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
    <!-- 自动扫描 -->

    <context:component-scan base-package="com.x_tie" />

    <!-- 引入配置文件 -->

    <bean id="propertyConfigurer"

        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

        <property name="location" value="classpath:jdbc.properties" />

    </bean>

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

        destroy-method="close">

        <property name="driverClassName" value="${driver}" />

        <property name="url" value="${url}" />

        <property name="username" value="${username}" />

        <property name="password" value="${password}" />

        <!-- 初始化连接大小 -->

        <property name="initialSize" value="${initialSize}"></property>

        <!-- 连接池最大数量 -->

        <property name="maxActive" value="${maxActive}"></property>

        <!-- 连接池最大空闲 -->

        <property name="maxIdle" value="${maxIdle}"></property>

        <!-- 连接池最小空闲 -->

        <property name="minIdle" value="${minIdle}"></property>

        <!-- 获取连接最大等待时间 -->

        <property name="maxWait" value="${maxWait}"></property>

    </bean>

    <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

        <property name="dataSource" ref="dataSource" />

        <!-- 自动扫描mapping.xml文件 -->

        <property name="mapperLocations" value="classpath:com/x_tie/mapping*.xml"></property>

    </bean>

    <!-- DAO接口所在包名,Spring会自动查找其下的类 -->

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

        <property name="basePackage" value="com.x_tie.dao" />

        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>

    </bean>

    <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->

    <bean id="transactionManager"

        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        <property name="dataSource" ref="dataSource" />

    </bean>

</beans>

pom.xml--》Maven依赖贴出了,对应什么作用上面都有解释

<project xmlns="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>photo</groupId>

  <artifactId>photoAlbum</artifactId>

  <packaging>war</packaging>

  <version>0.0.1-SNAPSHOT</version>

  <name>photoAlbum Maven Webapp</name>

  <url>http://maven.apache.org</url>

 

 

  <!-- 创建各个文件的版本信息方便下面(dependencies)里面的引用 -->

  <properties>

        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <!-- spring版本号 -->

        <spring.version>4.0.2.RELEASE</spring.version>

        <!-- mybatis版本号 -->

        <mybatis.version>3.2.6</mybatis.version>

        <!-- log4j日志文件管理包版本 -->

        <slf4j.version>1.7.7</slf4j.version>

        <log4j.version>1.2.17</log4j.version>

    </properties>

    <dependencies>

        <dependency>

            <groupId>javax</groupId>

            <artifactId>javaee-web-api</artifactId>

            <version>6.0</version>

            <scope>provided</scope>

        </dependency>

        <!-- junit -->

        <dependency>

            <groupId>junit</groupId>

            <artifactId>junit</artifactId>

            <version>4.11</version>

            <!-- 表示开发的时候引入,发布的时候不会加载此包 -->

            <scope>test</scope>

        </dependency>

        <!-- spring核心包 -->

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-core</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-oxm</artifactId>

            <version>${spring.version}</version>

        </dependency>

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-tx</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-aop</artifactId>

            <version>${spring.version}</version>

        </dependency>

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-context-support</artifactId>

            <version>${spring.version}</version>

        </dependency>

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-test</artifactId>

            <version>${spring.version}</version>

        </dependency>

        <!-- mybatis核心包 -->

        <dependency>

            <groupId>org.mybatis</groupId>

            <artifactId>mybatis</artifactId>

            <version>${mybatis.version}</version>

        </dependency>

        <!-- mybatis/spring包 -->

        <dependency>

            <groupId>org.mybatis</groupId>

            <artifactId>mybatis-spring</artifactId>

            <version>1.2.2</version>

        </dependency>

        <!-- 导入java ee jar 包 -->

        <dependency>

            <groupId>javax</groupId>

            <artifactId>javaee-api</artifactId>

            <version>7.0</version>

        </dependency>

        <!-- 导入Mysql数据库链接jar包 -->

        <dependency>

            <groupId>mysql</groupId>

            <artifactId>mysql-connector-java</artifactId>

            <version>5.1.30</version>

        </dependency>

        <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->

        <dependency>

            <groupId>commons-dbcp</groupId>

            <artifactId>commons-dbcp</artifactId>

            <version>1.2.2</version>

        </dependency>

        <!-- JSTL标签类 -->

        <dependency>

            <groupId>jstl</groupId>

            <artifactId>jstl</artifactId>

            <version>1.2</version>

        </dependency>

        <!-- 日志文件管理包 -->

        <!-- log start -->

        <dependency>

            <groupId>log4j</groupId>

            <artifactId>log4j</artifactId>

            <version>${log4j.version}</version>

        </dependency>

        <!-- 格式化对象,方便输出日志 -->

        <dependency>

            <groupId>com.alibaba</groupId>

            <artifactId>fastjson</artifactId>

            <version>1.1.41</version>

        </dependency>

        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>slf4j-api</artifactId>

            <version>${slf4j.version}</version>

        </dependency>

        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>slf4j-log4j12</artifactId>

            <version>${slf4j.version}</version>

        </dependency>

        <!-- log end -->

        

        <!-- 映入JSON -->

        <dependency>

            <groupId>org.codehaus.jackson</groupId>

            <artifactId>jackson-mapper-asl</artifactId>

            <version>1.9.13</version>

        </dependency>

        <!-- 上传组件包 -->

        <dependency>

            <groupId>commons-fileupload</groupId>

            <artifactId>commons-fileupload</artifactId>

            <version>1.3.1</version>

        </dependency>

        <dependency>

            <groupId>commons-io</groupId>

            <artifactId>commons-io</artifactId>

            <version>2.4</version>

        </dependency>

        <dependency>

            <groupId>commons-codec</groupId>

            <artifactId>commons-codec</artifactId>

            <version>1.9</version>

        </dependency>

    </dependencies>

    <build>

        <plugins>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-compiler-plugin</artifactId>

                <version>2.3.2</version>

                <configuration>

                    <source>1.6</source>

                    <target>1.6</target>

                    <compilerArguments>

                        <endorseddirs>${endorsed.dir}</endorseddirs>

                    </compilerArguments>

                </configuration>

            </plugin>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-war-plugin</artifactId>

                <version>2.1.1</version>

                <configuration>

                    <failOnMissingWebXml>false</failOnMissingWebXml>

                </configuration>

            </plugin>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-dependency-plugin</artifactId>

 
d506
               <version>2.1</version>

                <executions>

                    <execution>

                        <phase>validate</phase>

                        <goals>

                            <goal>copy</goal>

                        </goals>

                        <configuration>

                            <outputDirectory>${endorsed.dir}</outputDirectory>

                            <silent>true</silent>

                            <artifactItems>

                                <artifactItem>

                                    <groupId>javax</groupId>

                                    <artifactId>javaee-endorsed-api</artifactId>

                                    <version>6.0</version>

                                    <type>jar</type>

                                </artifactItem>

                            </artifactItems>

                        </configuration>

                    </execution>

                </executions>

            </plugin>

        </plugins>

    </build>

</project>

web.xml--》文件的配置

<?xml version="1.0" encoding="UTF-8"?>

<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/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

    <display-name>Archetype Created Web Application</display-name>

    <!-- Spring和mybatis的配置文件 -->

    <context-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>classpath:spring-mybatis.xml</param-value>

    </context-param>

    <!-- 编码过滤器 -->

    <filter>

        <filter-name>encodingFilter</filter-name>

        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

        <async-supported>true</async-supported>

        <init-param>

            <param-name>encoding</param-name>

            <param-value>UTF-8</param-value>

        </init-param>

    </filter>

    <filter-mapping>

        <filter-name>encodingFilter</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

    <!-- Spring监听器 -->

    <listener>

        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

    </listener>

    <!-- 防止Spring内存溢出监听器 -->

    <listener>

        <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>

    </listener>

    <!-- 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:spring-mvc.xml</param-value>

        </init-param>

        <load-on-startup>1</load-on-startup>

        <async-supported>true</async-supported>

    </servlet>

    <servlet-mapping>

        <servlet-name>SpringMVC</servlet-name>

        <!-- 此处可以可以配置成*.do,对应struts的后缀习惯 -->

        <url-pattern>*.html</url-pattern>

    </servlet-mapping>

    <welcome-file-list>

        <welcome-file>/index.jsp</welcome-file>

    </welcome-file-list>

</web-app>

到这整个配置就完成了,下面创建相应的文件

创建实体类(实体类根据表结构生成)

package com.x_tie.entity;

public class user_t {

    private String id;

    private String user_name;

    private String password;

    private String age;

    

    public String getId() {

        return id;

    }

    public void setId(String id) {

        this.id = id;

    }

    public String getUser_name() {

        return user_name;

    }

    public void setUser_name(String user_name) {

        this.user_name = user_name;

    }

    public String getPassword() {

        return password;

    }

    public void setPassword(String password) {

        this.password = password;

    }

    public String getAge() {

        return age;

    }

    public void setAge(String age) {

        this.age = age;

    }

    

}

创建实体的映射

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<!-- 创建user实体类的映射文件 -->

<mapper namespace="com.x_tie.dao.userDao">

    <!-- 创建查询的方法 -->

    <select id="getUserById" parameterType="java.lang.String" resultType="com.x_tie.entity.user_t">

        select * from user_t where id = #{id}

    </select>

</mapper>

创建dao

package com.x_tie.dao;

import com.x_tie.entity.user_t;

public interface userDao {

    public user_t getUserById(String id);

}

创建service

package com.x_tie.service;

import com.x_tie.entity.user_t;

public interface userService {

    public user_t getUserById(String id);

}

创建service实现

package com.x_tie.service.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.x_tie.dao.userDao;

import com.x_tie.entity.user_t;

import com.x_tie.service.userService;

@Service("userService")

public class userServiceImpl implements userService{

    //注入dao

    @Resource

    private userDao userDao;

    @Override

    public user_t getUserById(String id) {

        // TODO Auto-generated method stub

        return userDao.getUserById(id);

    }

}

创建测试类

package com.x_tie.test;

import javax.annotation.Resource;

import org.apache.log4j.Logger;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.test.context.ContextConfiguration;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.x_tie.dao.userDao;

import com.x_tie.entity.user_t;

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = {"classpath:spring-mybatis.xml"})

public class userTest {

    private static Logger logger = Logger.getLogger(userTest.class);

    @Resource

    private userDao userDao;

    @Test

    public void test(){

        user_t u = userDao.getUserById("1");

        System.out.println(u.getAge());

    }

}

控制台打印输出

这样基本就完成了一半了

下面创建控制类controller

package com.x_tie.controller;

import javax.annotation.Resource;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;

import org.springframework.stereotype.Service;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import com.x_tie.entity.user_t;

import com.x_tie.service.userService;

@Controller

@RequestMapping("/user")

public class userController {

    //引入service

    @Resource

    private userService userService;

    

    //创建整个返回的mapping

    @RequestMapping("/showUser")

    public String getUserById(HttpServletRequest request,Model model){

        String user_id = request.getParameter("id");

        user_t u = userService.getUserById(user_id);

        model.addAttribute("u", u);

        return "view/showUser";

    }

    

}

创建shouUser.jsp展示数据

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

    

    <title>My JSP 'showUser.jsp' starting page</title>

    

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">    

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="This is my page">

    <!--

    <link rel="stylesheet" type="text/css" href="styles.css">

    -->

  </head>

 

  <body>

    ${u.user_name }<br>

  </body>

</html>

页面显示

整个项目框架测试成功

最后整个项目的成型目录为
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  web spring mvc mybatis maven