前言 最近这几年JetBrains
公司开发的IDEA
是越来越流行了,甚至Google的官方IDE都是IDEA
来定制的,可见IDEA的发展趋势是越来越好,由于博主接触IDEA的时间也不长,所以有关IDEA
和Eclipse
的区别和优劣势请自行百度了。 借此机会我就使用IDEA来整合一下SSM,针对于初学者(初次使用IDEA和JAVAEE初学者)还是有帮助的。
新建SSM项目 哦对了,关于IDEA的版本问题强烈建议使用旗舰版,有条件的就购买,没条件的嘛。。天朝你懂的。 在欢迎界面点击Create New Project
。
之后选择Maven
(新建JAVAEE项目是需要安装JDK的,这个就不在这里讲解了。)选好之后点击下一步。 之后填入GroupID
和ArtifactID
这里尽量按照Maven的命名规范来即可。 之后点击下一步,填入项目名称,这里我建议和之前填写的ArtifactID
名称一样即可。 点击Finish完成项目的创建。 之后尽量不要做其他操作,让IDEA完成索引创建。
完善目录结构 首先观察一下IDEA给我们生成的目录结构,这是一个标准的Maven目录。但是其中少了一个webapp
目录用于存放jsp
、css
、js
、图片之类的文件。之后还需要完善我们的目录结构,如下图: 以上的命名都是我们开发过程中常用的命名规则,不一定按照我这样来,但是最好是有一定的规范。
POM.xml pom.xml
是整个maven的核心配置文件,里面有对项目的描述和项目所需要的依赖。哦对了,在修改pom.xml
文件之前我们最好先设置一下该项目的Maven设置(IDEA对每个项目的maven设置和Eclipse不一样,不是设置一次就可了,如果今后还要新建项目那就还需要设置,同时按住ctrl
,alt
,s
是打开设置的快捷键,更多有关IDEA的操作今后会更新相关博文。)
IDEA的Maven设置 在Eclipse
中用过Maven的都应该知道,这里是将项目的Maven换成我们自己安装的Maven,下面两个目录是选择Maven配置文件,不知道是什么原因在Eclipse
中选择了配置文件之后会自动的将Maven本地厂库的路径更改为你settings.xml
中配置的路径。既然这里没有自动选中那我们就手动修改即可,尽量不要放在C盘,一是用久之后本地厂库占用的空间会比较大,二是万一系统崩溃的话还有可能找回来。
修改pom.xml 以下是我的pom.xml
文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 <?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" > <modelVersion > 4.0.0</modelVersion > <groupId > com.crossoverJie</groupId > <artifactId > SSM</artifactId > <version > 1.0-SNAPSHOT</version > <build > <plugins > <plugin > <groupId > org.apache.maven.plugins</groupId > <artifactId > maven-compiler-plugin</artifactId > <configuration > <source > 1.6</source > <target > 1.6</target > </configuration > </plugin > </plugins > </build > <properties > <project.build.sourceEncoding > UTF-8</project.build.sourceEncoding > <spring.version > 4.1.4.RELEASE</spring.version > <jackson.version > 2.5.0</jackson.version > </properties > <dependencies > <dependency > <groupId > junit</groupId > <artifactId > junit</artifactId > <version > 3.8.1</version > <scope > test</scope > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-core</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-context</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-web</artifactId > <version > ${spring.version}</version > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-test</artifactId > <version > ${spring.version}</version > <scope > test</scope > </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.mybatis</groupId > <artifactId > mybatis-spring</artifactId > <version > 1.2.4</version > </dependency > <dependency > <groupId > log4j</groupId > <artifactId > log4j</artifactId > <version > 1.2.17</version > </dependency > <dependency > <groupId > mysql</groupId > <artifactId > mysql-connector-java</artifactId > <version > 5.1.34</version > </dependency > <dependency > <groupId > org.mybatis</groupId > <artifactId > mybatis</artifactId > <version > 3.3.1</version > </dependency > <dependency > <groupId > com.alibaba</groupId > <artifactId > druid</artifactId > <version > 1.0.18</version > </dependency > <dependency > <groupId > com.alibaba</groupId > <artifactId > fastjson</artifactId > <version > 1.2.3</version > </dependency > <dependency > <groupId > com.fasterxml.jackson.core</groupId > <artifactId > jackson-annotations</artifactId > <version > ${jackson.version}</version > </dependency > <dependency > <groupId > com.fasterxml.jackson.core</groupId > <artifactId > jackson-core</artifactId > <version > ${jackson.version}</version > </dependency > <dependency > <groupId > com.fasterxml.jackson.core</groupId > <artifactId > jackson-databind</artifactId > <version > ${jackson.version}</version > </dependency > <dependency > <groupId > org.aspectj</groupId > <artifactId > aspectjweaver</artifactId > <version > 1.8.4</version > </dependency > <dependency > <groupId > javax.servlet</groupId > <artifactId > servlet-api</artifactId > <version > 3.0-alpha-1</version > <scope > provided</scope > </dependency > <dependency > <groupId > javax.servlet</groupId > <artifactId > jstl</artifactId > <version > 1.2</version > </dependency > <dependency > <groupId > org.apache.commons</groupId > <artifactId > commons-lang3</artifactId > <version > 3.4</version > </dependency > <dependency > <groupId > commons-fileupload</groupId > <artifactId > commons-fileupload</artifactId > <version > 1.3.1</version > </dependency > </dependencies > </project >
关于maven
的知识点我就不细讲了,毕竟这是一个整合教程。
spring-mvc.xml 这个配置文件是springMVC的配置文件: 里面的我都写有注释,应该都能看懂。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 <?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.crossoverJie.controller" /> <mvc:annotation-driven /> <bean class ="org.springframework.web.servlet.view.InternalResourceViewResolver" > <property name ="prefix" value ="/WEB-INF/jsp/" /> <property name ="suffix" value =".jsp" /> </bean > <bean id ="multipartResolver" class ="org.springframework.web.multipart.commons.CommonsMultipartResolver" > <property name ="defaultEncoding" value ="utf-8" /> <property name ="maxUploadSize" value ="10485760000" /> <property name ="maxInMemorySize" value ="40960" /> </bean > </beans >
关于上面拦截器注释掉的那里,配置是没有问题的,因为这是一个整合项目,所以里边也没有用到拦截器,为了防止运行报错所以就先注释掉了。如果后续需要增加拦截器,可以参考这里的配置。
spring-mybatis.xml 这个是spring和mybatis的整合配置文件,其中还有Druid
连接池的配置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 <?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" 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" > <context:component-scan base-package ="com.crossoverJie" /> <bean id ="propertyConfigurer" class ="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" > <property name ="location" value ="classpath:jdbc.properties" /> </bean > <bean id ="dataSource" class ="com.alibaba.druid.pool.DruidDataSource" init-method ="init" destroy-method ="close" > <property name ="driverClassName" value ="${jdbc.driverClass}" /> <property name ="url" value ="${jdbc.url}" /> <property name ="username" value ="${jdbc.user}" /> <property name ="password" value ="${jdbc.password}" /> <property name ="initialSize" value ="3" /> <property name ="minIdle" value ="3" /> <property name ="maxActive" value ="20" /> <property name ="maxWait" value ="60000" /> <property name ="timeBetweenEvictionRunsMillis" value ="60000" /> <property name ="minEvictableIdleTimeMillis" value ="300000" /> <property name ="validationQuery" value ="SELECT 'x'" /> <property name ="testWhileIdle" value ="true" /> <property name ="testOnBorrow" value ="false" /> <property name ="testOnReturn" value ="false" /> <property name ="poolPreparedStatements" value ="true" /> <property name ="maxPoolPreparedStatementPerConnectionSize" value ="20" /> <property name ="filters" value ="stat" /> </bean > <bean id ="sqlSessionFactory" class ="org.mybatis.spring.SqlSessionFactoryBean" > <property name ="dataSource" ref ="dataSource" /> <property name ="mapperLocations" value ="classpath:mapping/*.xml" > </property > </bean > <bean class ="org.mybatis.spring.mapper.MapperScannerConfigurer" > <property name ="basePackage" value ="com.crossoverJie.dao" /> <property name ="sqlSessionFactoryBeanName" value ="sqlSessionFactory" > </property > </bean > <bean id ="transactionManager" class ="org.springframework.jdbc.datasource.DataSourceTransactionManager" > <property name ="dataSource" ref ="dataSource" /> </bean > </beans >
以上两个就是最重要的配置文件了,只要其中的包名和配置文件中的名字一样就不会出问题。 关于xxMpper.xml
以及实体类的生成,我们可以借助mybatis-generator
自动生成工具来生成,方便快捷。
IDEA配置Tomcat 关于Tomcat的下载与安装我这里就不多介绍了。 按照下图选择: 在name
中为这个Tomcat输入一个名字。之后选择你本地Tomcat的目录点击Ok
即可。 点击apply
和保存之后就返回首页即可看到Tomcat的标识。 根据需要点击Run
和Debug
即可运行。
运行结果如下: 点击上图的2,3,4可看到不同用户的结果,如果你走到这一步,那么恭喜你整合成功。
总结 以上源码都在github上。 项目地址:SSM 欢迎拍砖。