IDEA gradle 搭建SSM框架(Mysql数据库)

本文介绍了如何在IDEA中利用Gradle构建SSM(Spring、SpringMVC、Mybatis)框架,并结合Mysql数据库进行配置。内容包括Gradle的配置以及Spring与Mybatis的整合,同时提及了Redis的配置步骤。
摘要由CSDN通过智能技术生成

SSM框架目前比较流行的web框架之一,学会搭建并熟悉其如何使用很有必要!!!

一.gradle配置

group 'domeTest'
version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'maven'

sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    mavenLocal()
    maven { url "http://112.74.19.176:8081/repository/maven-central/" }
    mavenCentral()
    maven { url "http://repo.maven.apache.org/maven2" }
}
configurations {
    mybatisGenerator
}
dependencies {
    compileOnly group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
    compileOnly group: 'javax.servlet.jsp', name: 'javax.servlet.jsp-api', version: '2.3.1'
    compileOnly group: 'javax', name: 'javaee-web-api', version: '6.0'
    compileOnly group: 'mysql', name: 'mysql-connector-java', version: '5.1.34'
    compileOnly group: 'com.rabbitmq', name: 'amqp-client', version: '3.6.0'
    compileOnly group: 'redis.clients', name: 'jedis', version: '2.6.0'
    compileOnly group: 'com.zaxxer', name: 'HikariCP', version: '2.5.1'
    compileOnly group: 'jstl', name: 'jstl', version: '1.2'
    compileOnly group: 'commons-codec', name: 'commons-codec', version: '1.10'
    compileOnly group: 'commons-io', name: 'commons-io', version: '2.2'
    compileOnly group: 'commons-fileupload', name: 'commons-fileupload', version: '1.3.1'
    compileOnly group: 'commons-logging', name: 'commons-logging', version: '1.2'
    compileOnly group: 'com.google.guava', name: 'guava', version: '16.0.1'
    compileOnly group: 'commons-lang', name: 'commons-lang', version: '2.6'
    compileOnly group: 'commons-collections', name: 'commons-collections', version: '3.2.2'
    compileOnly group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.2'
    compileOnly group: 'org.springframework.data', name: 'spring-data-redis', version: '1.7.4.RELEASE'
    compileOnly group: 'org.springframework', name: 'spring-jdbc', version: '4.3.3.RELEASE'
    compileOnly group: 'org.springframework', name: 'spring-context', version: '4.3.3.RELEASE'
    compileOnly group: 'org.springframework', name: 'spring-context-support', version: '4.3.3.RELEASE'
    compileOnly group: 'org.springframework', name: 'spring-aop', version: '4.3.3.RELEASE'
    compile group: 'org.springframework', name: 'spring-webmvc', version: '4.3.3.RELEASE'
    compile group: 'org.springframework', name: 'spring-aspects', version: '4.3.3.RELEASE'
    compile group: 'org.aspectj', name: 'aspectjweaver', version: '1.6.12'
    compile group: 'org.aspectj', name: 'aspectjrt', version: '1.6.10'
    compile group: 'aopalliance', name: 'aopalliance', version: '1.0'
    compileOnly group: 'log4j', name: 'log4j', version: '1.2.16'
    compileOnly fileTree(dir: 'libs', include: ['*.jar'])
    compile fileTree(dir: 'maven_install', include: ['*.jar'])
    compile group: 'net.sf.ezmorph', name: 'ezmorph', version: '1.0.6'
    compile group: 'net.sf.json-lib', name: 'json-lib', version: '2.4', classifier: 'jdk15'
    compile group: 'com.sun.codemodel', name: 'codemodel', version: '2.6'
    compile group: 'org.apache.commons', name: 'commons-math3', version: '3.5'
    compile group: 'com.google.zxing', name: 'javase', version: '3.1.0'
    compile group: 'org.jsoup', name: 'jsoup', version: '1.8.1'
    compile group: 'com.sun.jna', name: 'jna', version: '3.0.9'
    compile group: 'com.spatial4j', name: 'spatial4j', version: '0.5'
    compile group: 'junit', name: 'junit', version: '4.10'
    compile group: 'org.mybatis', name: 'mybatis', version: '3.4.1'
    compile group: 'org.mybatis', name: 'mybatis-spring', version: '1.3.0'
    compile group: 'org.mybatis.generator', name: 'mybatis-generator-core', version: '1.3.5'
//用于声明一下任务所引用的jar包
    mybatisGenerator 'org.mybatis.generator:mybatis-generator-core:1.3.5'
    mybatisGenerator 'mysql:mysql-connector-java:5.1.34'
}
//执行mybatisGenerate任务自动生成model mapper和dao文件
task mybatisGenerate << {

    ant.taskdef(
            name: 'mbgenerator',
            classname: 'org.mybatis.generator.ant.GeneratorAntTask',
            classpath: configurations.mybatisGenerator.asPath
    )

    ant.mbgenerator(overwrite: true,
            configfile: 'src/main/webapp/WEB-INF/config/generatorConfig.xml',
            verbose: true) {
//        propertyset {
//            propertyref(name: 'targetProject')
//            propertyref(name: 'jarDirection')
//            propertyref(name: 'userId')
//            propertyref(name: 'driverClass')
//            propertyref(name: 'connectionURL')
//            propertyref(name: 'password')
//            propertyref(name: 'src_main_java')
//            propertyref(name: 'src_main_resources')
//            propertyref(name: 'modelPackage')
//            propertyref(name: 'mapperPackage')
//            propertyref(name: 'sqlMapperPackage')
//        }
    }
}
sourceSets {
    main {
        java {
            srcDir 'src/main/support'
        }
    }
}


//编译groovy代码时采用 UTF-8
tasks.withType(GroovyCompile) {
    groovyOptions.encoding = "MacRoman"
}
//编译JAVA文件时采用UTF-8
tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
}
//如果生成javadoc出现编码问题添加
javadoc {
    options{
        encoding "UTF-8"
        charSet 'UTF-8'
        author true
        version true
        links "http://docs.oracle.com/javase/7/docs/api"
        title "帮助文档"
    }
}


二 Spring 与mybatis 整合 并配置redis

<?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.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <context:property-placeholder file-encoding="utf-8" location="WEB-INF/config/jdbc.properties" ignore-unresolvable="true"/>
    <context:property-placeholder file-encoding="utf-8" location="WEB-INF/config/cache.properties" ignore-unresolvable="true"/>
   
    <!--配置数据源-->
    <bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
        <property name="poolName" value="springHikariCP"/>
        <property name="connectionTestQuery" value="${init.sql.checkTypeTable}"/>
        <property name="dataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"/>
        <property name="maximumPoolSize" value="${jdbc.maxPoolSize}"/>
        <property name="maxLifetime" value="${jdbc.maxLifetime}"/>
        <property name="idleTimeout" value="${jdbc.idleConnectionTestPeriod}"/>

        <property name="dataSourceProperties">
            <props>
                <prop key="url">${jdbc.url}</prop>
                <prop key="user">${jdbc.username}</prop>
                <prop key="password">${jdbc.password}</prop>
            </props>
        </property>
    </bean>

    <bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource">
        <constructor-arg ref="hikariConfig"/>
    </bean>

    <!--扫描xml-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="typeAliasesPackage" value="com.cs.mapper"/>
        <property name="mapperLocations" value="classpath:mapper/*Mapper.xml"/>
    </bean>

    <bean id="scannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.cs.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>

    <!--事务管理-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <constructor-arg name="dataSource" ref="dataSource"/>
    </bean>、
    <!--配置redis-->
    <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <property name="port" value="${redis.port}"/>
        <property name="usePool" value="true"/>
        <property name="hostName" value="${redis.host-name}"/>
        <property name="password" value="${redis.pwd}"/>
    </bean>

    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory" ref="jedisConnectionFactory"/>
    </bean>

    <bean id="redisCacheManager" class="org.springframework.data.redis.cache.RedisCacheManager">
        <constructor-arg index="0" ref="redisTemplate"/>
    </bean>

</beans>
jdbc 配置
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=自己的url
jdbc.username=用户名
jdbc.password=密码
jdbc.initialPoolSize=1
jdbc.minPoolSize=1
jdbc.maxPoolSize=2
jdbc.maxIdleTime=0
jdbc.acquireIncrement=1
jdbc.acquireRetryAttempts=10
jdbc.breakAfterAcquireFailure=true
jdbc.maxStatements=0
jdbc.maxLifetime=50
jdbc.testConnectionOnCheckout=false
jdbc.testConnectionOnCheckin=true
jdbc.idleConnectionTestPeriod=300
jdbc.maxIdleTimeExcessConnections=240
init.sql.checkTypeTable=select 1;
###hikariCP
dataSource.cachePrepStmts=true
dataSource.prepStmtCacheSize=250
dataSource.prepStmtCacheSqlLimit=2048
cache 配置
redis.host-name=redis链接IP
redis.port=redis端口号
redis.pwd=redis密码
三 Spring-mvc.xml	(配置静态文件以及Spring的自动注入和view解析,如果Controller和Service层需要注入配置文件中的内容 需要再这里注入)
<?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:task="http://www.springframework.org/schema/task"
       xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
       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/task   http://www.springframework.org/schema/task/spring-task-3.1.xsd
       http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

    <context:component-scan base-package="com.cs"/>
    <context:property-placeholder file-encoding="utf-8" location="WEB-INF/config/app.properties" ignore-unresolvable="true"/>
    <mvc:annotation-driven/>
    <task:annotation-driven/>
    <aop:aspectj-autoproxy proxy-target-class="true" />
    <!--静态资源-->
    <mvc:resources mapping="/static/**" location="/static/"/>
    <!--<mvc:default-servlet-handler/>-->

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


</beans>
四 generatorConfig 自动生成Model mapper和dao文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <classPathEntry location="C:/Users/remote_user/.gradle/caches/modules-2/files-2.1/mysql/mysql-connector-java/5.1.34/46deba4adbdb4967367b013cbc67b7f7373da60a/mysql-connector-java-5.1.34.jar"/>

    <context id="mysql" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="false" />
        </commentGenerator>
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="数据库URL"
                        userId="账号"
                        password="密码">
        </jdbcConnection>

        <javaTypeResolver >
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <javaModelGenerator
                targetPackage="com.cs.model"
                targetProject="F:/ndm-workspace/domeTest/src/main/support">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

//配置这里的时候 如果不把mapper 设置为资源文件,在访问的时候一直报mapper没有注入的情况(好像eclipse和mylicpse没有这样的毛病)
        <sqlMapGenerator
                targetPackage="mapper"
                targetProject="F:/ndm-workspace/domeTest/src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.cs.dao"
                             targetProject="F:/ndm-workspace/domeTest/src/main/support">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>


        <!--创建含有example的model-->
        <!--&lt;!&ndash; 每一个数据库表都需要建立一个对应的table字段 &ndash;&gt;-->
        <!--<table tableName="cms_index">-->
             <!--<property name="useActualColumnNames" value="true"/>-->
            <!--<generatedKey column="ID" sqlStatement="DB2" identity="true" />-->
            <!--<columnOverride column="DATE_FIELD" property="startDate" />-->
            <!--<ignoreColumn column="FRED" />-->
            <!--<columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />-->
        <!--</table>-->
    <!--创建没有example的model-->
         <table tableName="cms_index" domainObjectName="CmsIndex"
           enableCountByExample="false"
           enableUpdateByExample="false" enableDeleteByExample="false"
           enableSelectByExample="false" selectByExampleQueryId="false">
           <property name="useActualColumnNames" value="false" />
             <property name="useActualColumnNames" value="true"/>
             <generatedKey column="ID" sqlStatement="DB2" identity="true" />
             <columnOverride column="DATE_FIELD" property="startDate" />
             <ignoreColumn column="FRED" />
             <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
       </table>

    </context>
</generatorConfiguration>+
五 web.xml 
<?xml version="1.0" encoding="UTF-8"?>
<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">
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/config/Spring-*.xml,/WEB-INF/config/generatorConfig.xml</param-value>
    </context-param>

    <servlet>
        <servlet-name>SpringMvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/config/Spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>SpringMvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
    <listener>
        <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
    </listener>

</web-app>

搭建完的项目布局

调一下试试看看成功没有:

调用接口运行








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值