idea中ssm(spring-spring mvc-mybatis)框架搭建

我的idea是13.1.3

首先点击 File - New Project - 选择maven ,并且在右面选择maven-archtype-webapp选项,如图所示


点击next后,出现填写GroupId和Artifactid,一般GroupId写com.***.项目,Artifactid写你的项目名称


然后点击next


点击next


Project name 项目名称,location项目地址,随后点击finish,如果未创建例如我的E盘csdn文件夹,会提示是否创建,点OK

随后idea进行下载目录结构,如果网络慢的话,可能会等比较长时间。 创建好目录之后提示信息,忽略那条waring...如下图

先看一下项目 目录的结构


现在是一个大的project,我们可以右键csdn项目new 一个Module命名为csdn-front前端模块,在右键new一个Module命名为csdn-service作为数据模块,步骤过程和上面一样,过程略去,(这里面,new的Module也都是maven项目,记得和上述过程一样哦)直接展示new好的目录结构


我这里的csdn-front中的main目录下java目录是自己手动创建的,会发现他是蓝色的,如果刚接触idea不久可能不知道如何创建java目录,还是new  一个文件夹命名为java,然后操作如下图所示


酱紫就是蓝色的java目录了

现在配置pom.文件,打开csdn-front里的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <!--<parent>-->
        <!--<artifactId>csdn</artifactId>-->
        <!--<groupId>com.wangjianxin.csdn</groupId>-->
        <!--<version>1.0-SNAPSHOT</version>-->
    <!--</parent>-->
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.wangjianxin.csdn</groupId>
    <artifactId>csdn-front</artifactId>
    <packaging>war</packaging>
    <name>csdn-fron</name>
    <version>1.0-SNAPSHOT</version>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.version>4.0.5.RELEASE</spring.version>
        <commons-lang3.version>3.1</commons-lang3.version>
        <commons-codec.version>1.6</commons-codec.version>
        <version.shiro>1.2.2</version.shiro>
    </properties>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.typesafe.akka</groupId>
            <artifactId>akka-actor_2.10</artifactId>
            <version>2.3.6</version>
        </dependency>
        <dependency>
            <groupId>com.wangjianxin.csdn</groupId>
            <artifactId>csdn-service</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!-- commons-lang3 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.1</version>
        </dependency>
        <!-- Apache Shiro: Security. -->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-core</artifactId>
            <version>${version.shiro}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-web</artifactId>
            <version>${version.shiro}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-spring</artifactId>
            <version>${version.shiro}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-aspectj</artifactId>
            <version>${version.shiro}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-ehcache</artifactId>
            <version>${version.shiro}</version>
            <exclusions>
                <exclusion>
                    <artifactId>ehcache-core</artifactId>
                    <groupId>net.sf.ehcache</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- httpClient  -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.3.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpmime</artifactId>
            <version>4.3.2</version>
        </dependency>
        <!-- @Confugiration依赖包,bean生成相关 -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.6.12</version>
        </dependency>
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib-nodep</artifactId>
            <version>2.2</version>
        </dependency>
        <!-- spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- WEB begin -->
        <!-- spring mvc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- spring mvc end-->
        <!-- j2ee web spec-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.7</version>
        </dependency>
        <dependency>
            <groupId>opensymphony</groupId>
            <artifactId>sitemesh</artifactId>
            <version>2.4.2</version>
        </dependency>
        <!-- kaptcha验证码 -->
        <dependency>
            <groupId>com.google.code.kaptcha</groupId>
            <artifactId>kaptcha</artifactId>
            <version>2.3.2</version>
        </dependency>
        <!-- WEB end -->
        <!-- logger -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.5</version>
        </dependency>
        <!-- 		json -->
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>1.9.12</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.12</version>
        </dependency>
        <!-- 		json -->
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>1.9.12</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.12</version>
        </dependency>
        <dependency>
            <groupId>com.jolbox</groupId>
            <artifactId>bonecp</artifactId>
            <version>0.8.0-rc1</version>
        </dependency>
        <dependency>
            <groupId>com.cloudhopper.proxool</groupId>
            <artifactId>proxool</artifactId>
            <version>0.9.1</version>
        </dependency>
        <!--<dependency>-->
        <!--<groupId>org.aspectj</groupId >-->
        <!--<artifactId>aspectjweaver</artifactId >-->
        <!--<version>1.8.7</version >-->
        <!--</dependency>-->
        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.2</version>
        </dependency>
        <!--   httpclient-->
        <dependency>
            <groupId>HTTPClient</groupId>
            <artifactId>HTTPClient</artifactId>
            <version>0.3-3</version>
        </dependency>
        <!-- 读取csv文件-->
        <dependency>
            <groupId>net.sourceforge.javacsv</groupId>
            <artifactId>javacsv</artifactId>
            <version>2.0</version>
        </dependency>

        <!-- fileupload-->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.18</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.3</version>
        </dependency>
        <dependency>
            <groupId>com.danga</groupId>
            <artifactId>memcached</artifactId>
            <version>2.6.6</version>
        </dependency>
        <!--page-->
        <dependency>
            <groupId>com.github.miemiedev</groupId>
            <artifactId>mybatis-paginator</artifactId>
            <version>1.2.15</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>csdn-front</finalName>
        <resources>
            <resource>
                <directory>${project.basedir}/src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>${project.basedir}/src/main/resources</directory>
                <filtering>true</filtering>
            </testResource>
            <testResource>
                <directory>${project.basedir}/src/test/resources</directory>
                <filtering>true</filtering>
            </testResource>
        </testResources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
            <!-- 		jetty服务器 -->
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
                <version>6.1.12.rc5</version>
                <configuration>
                    <scanIntervalSeconds>5</scanIntervalSeconds>
                    <connectors>
                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                            <port>8080</port>
                            <maxIdleTime>600000</maxIdleTime>
                        </connector>
                    </connectors>
                    <webAppConfig>
                        <contextPath>/</contextPath>
                    </webAppConfig>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat6-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <url>http://localhost:8080/manager/html</url>
                    <server>tomcat</server>
                    <server>tomcat</server>
                    <port>8090</port>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.5.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1.1</version>
                <configuration>
                    <archiveClasses>true</archiveClasses>
                    <webResources>
                        <resource>
                            <directory>${project.build.directory}/classes</directory>
                            <targetPath>WEB-INF/classes</targetPath>
                            <filtering>false</filtering>
                            <includes>
                                <include>*.xml</include>
                                <include>*.properties</include>
                            </includes>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
在配置csdn-service里的pom文件,如下

<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">
    <!--<parent>-->
        <!--<artifactId>csdn</artifactId>-->
        <!--<groupId>com.wangjianxin.csdn</groupId>-->
        <!--<version>1.0-SNAPSHOT</version>-->
    <!--</parent>-->
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.wangjianxin.csdn</groupId>
    <artifactId>csdn-service</artifactId>
    <packaging>war</packaging>
    <name>csdn-service</name>
    <url>http://maven.apache.org</url>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.version>4.0.5.RELEASE</spring.version>
        <commons-lang3.version>3.1</commons-lang3.version>
        <commons-codec.version>1.6</commons-codec.version>
        <version.shiro>1.2.2</version.shiro>
    </properties>


    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <!-- commons-lang3 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.1</version>
        </dependency>
        <!-- httpClient -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.2.1</version>
        </dependency>

        <!-- @Confugiration依赖包,bean生成相关 -->
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib-nodep</artifactId>
            <version>2.2</version>
        </dependency>
        <!-- spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
            <type>jar</type>
        </dependency>

        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.3</version>
        </dependency>
        <!--mybatis-->
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>HttpClient</artifactId>
            <version>3.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.3</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>com.github.miemiedev</groupId>
            <artifactId>mybatis-paginator</artifactId>
            <version>1.2.15</version>
        </dependency>
        <!-- WEB begin -->
        <!-- spring mvc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- spring mvc end-->
        <dependency>
            <groupId>com.danga</groupId>
            <artifactId>memcached</artifactId>
            <version>2.6.6</version>
        </dependency>
        <!-- j2ee web spec -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <!-- logger -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.5</version>
        </dependency>
        <!-- 		json -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.0.0-RC1</version>
        </dependency>
        <dependency>
            <groupId>com.jolbox</groupId>
            <artifactId>bonecp</artifactId>
            <version>0.8.0-rc1</version>
        </dependency>

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.3</version>
        </dependency>
        <!--   httpclient-->
        <dependency>
            <groupId>HTTPClient</groupId>
            <artifactId>HTTPClient</artifactId>
            <version>0.3-3</version>
        </dependency>
        <!-- 读取csv文件-->
        <dependency>
            <groupId>net.sourceforge.javacsv</groupId>
            <artifactId>javacsv</artifactId>
            <version>2.0</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.18</version>
        </dependency>

        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.5</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>
        <dependency>
            <groupId>xom</groupId>
            <artifactId>xom</artifactId>
            <version>1.2.5</version>
        </dependency>
        <dependency>
            <groupId>org.jdom</groupId>
            <artifactId>jdom</artifactId>
            <version>1.1</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>csdn-service</finalName>
    </build>
</project>
将包都下载到本地maven库之后,开始写配置文件

在csdn-front中的resources里new spring config

命名爲spring-servlet,内容如下

<?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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
    <!-- 	扫描组件 -->
    <context:component-scan base-package="com.wangjianxin.front.controller">
    </context:component-scan>
    <aop:aspectj-autoproxy proxy-target-class="true"/>
    <!-- 	视图解释 -->
    <!--默认的注解映射的支持-->
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="true">
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg value="UTF-8"/>
            </bean>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="objectMapper">
                    <bean class="com.github.miemiedev.mybatis.paginator.jackson2.PageListJsonMapper"/>
                </property>
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
    <!--设置静态资源handler -->
    <mvc:default-servlet-handler/>
    <!-- 支持上传文件 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
    <!-- @ResponseBody方法异常处理-->
    <bean id="mappingJackson2HttpMessageConverter"
          class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="objectMapper">
            <bean class="com.github.miemiedev.mybatis.paginator.jackson2.PageListJsonMapper"/>
        </property>
    </bean>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

隨後整合mybatis,new xml (步驟和上面一樣)命名為 spring-mybatis


<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:beans="http://www.springframework.org/schema/beans"
             xmlns:context="http://www.springframework.org/schema/context"
             xmlns:tx="http://www.springframework.org/schema/tx"
             xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
		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">


    <context:component-scan base-package="com.wangjianxin.service"/>
    <context:component-scan base-package="com.google.code.kaptcha"/>
    <!--<beans:bean id="ServiceLocator" class="com.wangjianxin.util.ServiceLocator"/>-->

    <!--<beans:bean id="Producer" class="com.google.code.kaptcha.Producer" abstract="true"/>-->

    <beans:bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <beans:property name="locations">
            <beans:list>
                <beans:value>classpath:jdbc.properties</beans:value>
            </beans:list>
        </beans:property>
    </beans:bean>

    <context:annotation-config/>
    <beans:bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
        <beans:property name="driver" value="com.mysql.jdbc.Driver"/>
        <beans:property name="driverUrl" value="${jdbcUrl}" />
        <beans:property name="user" value="${username}" />
        <beans:property name="password" value="${password}" />
        <beans:property name="alias" value="Pool_dbname" />
        <beans:property name="houseKeepingSleepTime" value="90000" />
        <beans:property name="prototypeCount" value="0" />
        <beans:property name="maximumConnectionCount" value="50" />
        <beans:property name="minimumConnectionCount" value="2" />
        <beans:property name="simultaneousBuildThrottle" value="50" />
        <beans:property name="maximumConnectionLifetime" value="14400000" />
        <beans:property name="houseKeepingTestSql" value="select CURRENT_DATE" />
    </beans:bean>

    <beans:bean id="sqlSessionFactory"
                class="org.mybatis.spring.SqlSessionFactoryBean">
        <beans:property name="dataSource" ref="dataSource"/>
        <beans:property name="configLocation" value="classpath:mybatis-config.xml"/>
        <beans:property name="mapperLocations" value="classpath:/mapping/*.xml"/>
        <beans:property name="typeAliasesPackage" value="com.wangjianxin.service.model"/>
        <beans:property name="typeAliases" value="org.springframework.util.LinkedCaseInsensitiveMap"/>
    </beans:bean>

    <beans:bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <beans:property name="basePackage" value="com.wangjianxin.service.dao"/>
        <beans:property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </beans:bean>
</beans:beans>
继续新建xml文件 命名为mybatis-config 如下(这个xml里的settings借鉴了网上的一篇文章,,,)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
        "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
    <settings>
        <!--<setting name="cacheEnabled" value="true" />-->
        <!--<setting name="lazyLoadingEnabled" value="true" />-->
        <!--<setting name="aggressiveLazyLoading" value="true"/>-->
        <!-- 这个配置使全局的映射器启用或禁用缓存 -->
        <setting name="cacheEnabled" value="true"/>
        <!-- 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载 -->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!-- 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载 -->
        <setting name="aggressiveLazyLoading" value="true"/>
        <!-- 允许或不允许多种结果集从一个单独的语句中返回(需要适合的驱动) -->
        <setting name="multipleResultSetsEnabled" value="true"/>
        <!-- 使用列标签代替列名。不同的驱动在这方便表现不同。参考驱动文档或充分测试两种方法来决定所使用的驱动 -->
        <setting name="useColumnLabel" value="true"/>
        <!-- 允许JDBC支持生成的键。需要适合的驱动。如果设置为true则这个设置强制生成的键被使用,尽管一些驱动拒绝兼容但仍然有效(比如Derby) -->
        <setting name="useGeneratedKeys" value="true"/>
        <!-- 指定MyBatis如何自动映射列到字段/属性。PARTIAL只会自动映射简单,没有嵌套的结果。FULL会自动映射任意复杂的结果(嵌套的或其他情况) -->
        <setting name="autoMappingBehavior" value="PARTIAL"/>
        <!-- 配置默认的执行器。SIMPLE执行器没有什么特别之处。REUSE执行器重用预处理语句。BATCH执行器重用语句和批量更新 -->
        <setting name="defaultExecutorType" value="SIMPLE"/>
        <!-- 设置超时时间,它决定驱动等待一个数据库响应的时间 -->
        <setting name="defaultStatementTimeout" value="25000"/>
    </settings>
    <plugins>
        <plugin interceptor="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">
            <property name="dialectClass" value="com.github.miemiedev.mybatis.paginator.dialect.MySQLDialect"/>
        </plugin>
    </plugins>
</configuration>
借着配置配置jdbc.properties 如下

type=mysql
jdbcUrl=jdbc\:mysql\://localhost\:3306/ssm?autoReconnect\=true&useUnicode\=true&characterEncoding\=UTF-8
username=root
password=root
bonecp.idleConnectionTestPeriod=60
bonecp.idleConnectionTestPeriodInMinutes=5
bonecp.idleMaxAgeInMinutes=10
bonecp.idleMaxAge=60
bonecp.partitionCount=3
bonecp.minConnectionsPerPartition=2
bonecp.maxConnectionsPerPartition=50
bonecp.acquireIncrement=3
bonecp.statementsCacheSize=50
bonecp.releaseHelperThreads=3
bonecp.defaultAutoCommit=true
ssm是我的数据库名字,下面root是账号和密码


最后配置web xml文件

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         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>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring-mybatis.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
    </listener>
    <listener>
        <listener-class>com.github.miemiedev.mybatis.paginator.CleanupMybatisPaginatorListener</listener-class>
    </listener>
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

最后看一下csdn-front里的resources的文件



随后开始创建controller 和service 

创建controller包,new class文件

package com.wangjianxin.front.controller;

import com.wangjianxin.service.manager.StudentManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
/**
 * Created by wangjianxin on 2016/10/31.
 */
@Controller
@RequestMapping("/ssm")
public class CsdnController {

    @Autowired
    private StudentManager studentManager;

    @RequestMapping(value = "/csdn.json",method = RequestMethod.GET)
    @ResponseBody
    public String csdn(){
      List lsit =   studentManager.selectall();
        return lsit.toString();
    }

    @RequestMapping(value = "/csdn.html")
    public String html(){
        return "csdn";
    }

}

这样一个简单的controller类就建立了,例如要访问csdn.json这个接口的url就可以写成: /ssm/csdn.json。 可以理解下@RequestMapping这个注解

利用@Autowired引入manager 调用manager接口的方法


随后在csdn-service中建立文件夹和类如图


想必这些类目大家都懂得,dao层中的接口方法名和mapping中的xml映射相对应,

StudentManager:

package com.wangjianxin.service.manager;
import com.wangjianxin.service.model.Student;

import java.util.List;

/**
 * Created by wangjianxin on 2016/10/26.
 */
public interface StudentManager {
    List selectall();
}


StudentManagerImpl:

package com.wangjianxin.service.manager.impl;

import com.wangjianxin.service.dao.StudentMapper;
import com.wangjianxin.service.manager.StudentManager;
import com.wangjianxin.service.model.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
* Created by wangjianxin on 2016/10/26.
*/
@Service
public class StudentManagerImpl implements StudentManager{

    @Autowired
    private StudentManager studentManager;
    @Override
    public List selectall() {
        List lsit  = studentManager.selectall();
        return lsit;
    }
}

StudentMapper:

package com.wangjianxin.service.manager;
import com.wangjianxin.service.model.Student;

import java.util.List;

/**
 * Created by wangjianxin on 2016/10/26.
 */
public interface StudentManager {
    List selectall();
}

StudentMapping.xml:

<?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" >
<mapper namespace="com.wangjianxin.service.dao.StudentMapper" >
  <resultMap id="BaseResultMap" type="com.wangjianxin.service.model.Student" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="name" property="name" jdbcType="VARCHAR" />
    <result column="age" property="age" jdbcType="INTEGER" />
    <result column="hobby" property="hobby" jdbcType="VARCHAR" />
  </resultMap>
  <sql id="Base_Column_List" >
    id, name, age, hobby
  </sql>
    <select id="selectall" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
        select
        <include refid="Base_Column_List" />
        from student
    </select>
</mapper>

model懒的写上来了,就那几个属性,在数据库中随便的建的表

在csdn的WEB-INF的jsp文件夹下面建立csdn.jsp文件

<%--
  Created by IntelliJ IDEA.
  User: wangjianxin
  Date: 2016/10/31
  Time: 13:58
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
    <script src="/resources/js/jquery-1.10.2.min.js"></script>
</head>
<body>
    hello csdn 哈哈~

<input type="button" οnclick="getStudent()" value="获取数据" />
<input type="text" id="csdn"/>

<script>
    function getStudent(){
        $.ajax({
            url:"/ssm/csdn.json",
            type:"get",
            success:function (data){
                $('#csdb').val(data);
            }
        })
    }
</script>
</body>
</html>
写了个ajax和controller交互。

首先编译项目,cmd 命令切换到csdn项目的目录,mvn install 

随后编译成功后可以在idea中的maven Project选项栏里找到csdn-front里的Plugins-jetty-jetty:run运行。

输入地址localhost:8080/ssm/csdn.html

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值