idea配置SSM

SSM基本流程

tomcat配置

mysql配置

maven配置

intellij idea配置

一. 新建工程

1.选择maven中的模板创建, 一般选择maven-archetype-webapp
选择maven中的模板创建
2.这一步随便起个名就行
选择maven中的模板创建
3.这一步是配置maven设置, 添加的字段是阻止每次maven的自更新
选择maven中的模板创建
4.起项目名, 然后就等待maven的构建项目过程, 第一次的话会稍微久一点, 之后就会比较快了.
选择maven中的模板创建

二. 建包

1.上面的步骤完成之后会是下面这样.
选择maven中的模板创建
选择maven中的模板创建
2. 首先先在main文件夹下建立新的文件夹java, 然后右键选择java设置为源代码文件夹.
选择maven中的模板创建
3. 之后就在java文件夹下建包,建包之后会是这样
选择maven中的模板创建
选择maven中的模板创建

三. 设置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>com.lzhr</groupId>
  <artifactId>ssm_setup</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>ssm_setup Maven Webapp</name>
  <url>http://maven.apache.org</url>
  
  <properties>
    <spring.version>4.3.6.RELEASE</spring.version>
    <spring-data.version>1.11.0.RELEASE</spring-data.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
    <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>1.3.4</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.40</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/jstl/jstl -->
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.3.6.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
      <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-dao -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-dao</artifactId>
      <version>2.0.8</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.1</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-dbcp2</artifactId>
      <version>2.1.1</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.8.6</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.8.6</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>RELEASE</version>
    </dependency>
  </dependencies>
  
  <build>
    <finalName>SSMSample</finalName>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
          <include>**/*.tld</include>
        </includes>
        <filtering>false</filtering>
      </resource>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
          <include>**/*.tld</include>
        </includes>
        <filtering>false</filtering>
      </resource>
    </resources>
  </build>
  
</project>

-Spring配置

创建applicationContext.xml

  • 在resource文件夹中创建xml, 流程如图:


    1. 在resource文件夹中创建一个spring配置文件.

    2. 名字其实随意

    3. 创建完成之后右下角会出现选项, 点击configure

    4. 在配置页面直接点OK就行
    4. 在配置页面直接点OK就行
  • 配置xml, 现阶段就一句话, 具体配置如图:


    就是扫描包, 包中所有的类都使用注解
  • <context:component-scan base-package="com.lzhr"/>是自动扫描包及子包中的组件, 这样就不需要配置<bean>标签, 直接使用注解就可以了.

-mybatis配置

1.创建jdbc.properties配置文件

在resource文件夹中创建空白File, 后缀为jdbc.properties, 内容如下:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/stu?useSSL=true
username=root
password=lzhr
#定义初始连接数
initialSize=0
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1

如图:

创建properties文件

创建properties文件

创建properties文件
创建properties文件

2.使用generator生成mapper和xml文件

  • 创建generatorConfig.xml配置文件
创建generator.xml文件

需要填的内容如下:

classPathEntry: 驱动包路径

jdbcConnection: 数据配置

javaModelGenerator: 表对象的模型设置

sqlMapGenerator: mapper的xml文件设置

javaClientGenerator: mapper的接口文件设置

table: 表设置(可以设置多个表)

具体配置如下:

<generatorConfiguration>

    <!-- !!!! Driver Class Path !!!! -->
    <!-- !!!! 设置MySQL驱动路径 !!!! -->
    <classPathEntry location="/Users/lizhongren1/maven/LocalWarehouse
    /mysql/mysql-connector-java/5.1.40/mysql-connector-java-5.1.40.jar"/>

    <context id="context" targetRuntime="MyBatis3">
        <!-- !!!! 是否生成注释, 一般都是false, 自动生成的注释完全不能看, 还耽误git同步 !!!! -->
        <commentGenerator>
            <property name="suppressAllComments" value="false"/>
            <property name="suppressDate" value="false"/>
        </commentGenerator>

        <!-- !!!! Database Configurations !!!! -->
        <!-- !!!! 配置数据库数据 !!!! -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/stu?useSSL=true"
                        userId="root" password="lzhr"/>

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

        <!-- !!!! Model Configurations !!!! -->
        <!-- !!!! 设置生成的JavaBean所在的包 !!!! -->
        <javaModelGenerator targetPackage="com.lzhr.domain" 
                            targetProject="./src/main/java">
            <property name="enableSubPackages" value="false"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- !!!! Mapper XML Configurations !!!! -->
        <!-- !!!! 配置Mapper的XML配置文件位置, 也可以设置到resource文件夹 !!!! -->
        <sqlMapGenerator targetPackage="com.lzhr.mapper" targetProject="./src/main/java">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>

        <!-- !!!! Mapper Interface Configurations !!!! -->
        <!-- !!!! 配置Mapper接口文件位置 !!!! -->
        <javaClientGenerator targetPackage="com.lzhr.mapper"
                             targetProject="./src/main/java"
                             type="XMLMAPPER">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>

        <!-- !!!! Table Configurations !!!! -->
        <!-- !!!! 配置MySQL下的表设置 !!!! -->
        <table tableName="student"
               enableCountByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               enableUpdateByExample="false"/>
    </context>
</generatorConfiguration>
  • 创建执行类文件.
public class MybatisTest {

    public void generator() throws Exception{
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        //指定 逆向工程配置文件
        File configFile = new File("src/main/resources/generatorConfig.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
                callback, warnings);
        myBatisGenerator.generate(null);
    }

    public static void main(String[] args) throws Exception {
        try {
            MybatisTest generatorSqlmap = new MybatisTest();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

  • 执行main方法, 结构如下图


    因为在generator中的配置不同,位置有所不同
    因为在generator中的配置不同,位置有所不同

3. spring和batis整合

在applicationContext中配置Mybatis

设置说明:

propertyConfigurer: 读取数据库设置信息

dataSource: 配置连接池

sqlSessionFactory: 配置session工厂, 此步节省了mybatis本身应该有的xml配置文件

org.mybatis.spring.mapper.MapperScannerConfigurer: 自动扫描mapper接口文件

transactionManager: 事务管理

    <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.dbcp2.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>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 自动扫描mapping.xml文件 -->
        <property name="mapperLocations" value="classpath*:mapper/*.xml"/>
    </bean>

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

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

4. 完成后的项目结构

如图:

因为在generator中的配置不同,Mapper相关文件位置有所不同

-springMVC配置

  • 创建xxx-servlet.xml调度文件
  • 配置web.xml
  • 创建controller类
  • 创建jsp文件
  • 部署配置

1.创建xxx-servlet.xml文件

同样在resources文件夹中创建, 命名规范一般是xxx-servlet.xml.

说明:

mvc:annotation-driven: 注解驱动
<context:component-scan base-package="com.lzhr"/>: 自动扫描组件包
mvc:default-servlet-handler: 处理servlet资源, servlet在找不到页面的时候会去找静态的内容。
jspViewResolver: 视图解析器基本配置, 例如下面的例子就是识别:/WEB-INF/pages/*.jsp

基本配置如下:

<?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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">
    
    <mvc:annotation-driven/>

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

    <mvc:default-servlet-handler/>

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

2. 配置web.xml

找到在WEB-INF文件夹下的web.xml. 这里本来应该配置各种servlet. 有了springmvc可以取代一大堆重复的配置标签.

  1. 更新web-app.
  2. 配置context-param: 这里主要配置spring的xml配置文件的地址:
  3. 配置监听器: 这里很重要, 不然会匹配不到mapper等接口文件,导致spring的注入失败.
  4. 配置servlet和servlet-mapping: 配置的结果就是把所有的servlet都交给springmvc来处理.
  5. 配置filter: 可以解决乱码问题.

详细配置如下:

<web-app 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
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <display-name>Archetype Created Web Application</display-name>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

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

    <servlet>
        <servlet-name>AServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:SSM-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>


    <servlet-mapping>
        <servlet-name>AServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <filter>
        <filter-name>SpringEncoding</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>SpringEncoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

3. 创建Controller类

在controller包中创建controller类, 负责处理servlet.
代码如下, 含义是处理"/"的URL, 显示index.jsp页面:

@Controller
public class MainController {
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String frontPage(){
        return "index";
    }
}

4. 在WEB-INF文件夹中创建jsp文件

可以自己定义目录归纳整理jsp

-一些坑

1.tomcat包

2.

-常见错误和解决

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,601评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,748评论 6 342
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,192评论 11 349
  • [手把手教程][JavaWeb]SSM框架验证、修复和实例 手把手验证上期的SSM项目:优雅的SpringMvc+...
    Clone丶记忆阅读 16,934评论 49 76
  • 最近两会刚结束,一片改革的欣欣向荣。我最近听到几个非常新颖、有趣的想法,觉得挺触动的,分享给大家。 01 一个企业...
    韩同志阅读 208评论 0 2