IDEA(一) 使用IDEA搭建SSM框架项目

1. 新建项目

IDEA中新建Maven项目,使用Maven Archetype原型:maven-archetype-webapp

新建项目结构为:

IDEA(一) 使用IDEA搭建SSM框架项目_第1张图片

2. 新建包目录

  • 新建Java代码目录:src.main.java

    src.main.java下新建分层模型package,带上项目的groupId(仅供参考)

    • common:存放全局变量,公共枚举等

    • base:存放基础组件,如工具类,过滤器,配置类等

    • controller:控制层

    • vo:前端传输过来的对象,如封装的请求

    • bo:业务对象,可能是多个dto/entity的整合

    • service:业务层

      • intf:接口

      • impl:实现

    • dao:数据库访问层

      • intf:接口(MyBatis中为xxxMapper.java)
      • impl:实现(MyBatis中自动生成实现类)
    • dto:数据传输对象,存放多表联合对象

    • entity:实体,对应数据库表

  • 新建资源目录:src.main.resources

3. 按需引入pom

新建工程后,不建议一次性引入所有的依赖,而是在需要的时候逐步引入,这样虽然会踩很多坑,但是可以熟悉每个依赖的作用,防止以后踩更大的坑。

新建工程后,第一次需要引入的依赖有:

  • Servlet API

    Java Web的应用服务器会带有Servlet API,所以这个依赖的scope设成provided

    
        javax.servlet
        javax.servlet-api
        ${servlet.version}
        provided
    
    
  • Spring Web Mvc

    Spring Web依赖,包括Spring MVC,IDEA会把Spring Web Mvc所依赖的其他Spring模块也引入,有:aop、beans、context、core、expression、web,其余的模块不用引,但是为了扩展性,还是引入比较好。

    
        org.springframework
        spring-webmvc
        ${spring.version}
    
    

4. 配置web.xml

4.1 配置ContextLoaderListener

ContextLoaderListener是ServletContext监听器,用于创建容器对象,并且将ApplicationContext对象放到Application域中,并指定spring核心配置文件。

关于ContextLoaderListener的具体作用及源码,会另写文章分析。


    org.springframework.web.context.ContextLoaderListener


    contextConfigLocation
    classpath:spring.xml

4.2 配置DispatcherServlet

DispatcherServlet是前端控制器,配置中指定Spring MVC的配置文件。

关于DispatcherServlet的具体作用及源码,会另写文章分析。


    springmvc
    org.springframework.web.servlet.DispatcherServlet
    
        contextConfigLocation
        classpath:spring-mvc.xml
    
    1


    springmvc
    /

4.3 处理中文乱码问题

配置CharacterEncodingFilter过滤器处理中文乱码问题,要放到所有过滤器之前。


    CharacterEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
        encoding
        UTF-8
    
    
        forceRequestEncoding
        true
    
    
        forceResponseEncoding
        true
    


    CharacterEncodingFilter
    /*

4.4 整合Restful风格请求

配置HiddenHttpMethodFilter过滤器,将get/post请求转换为标准的http方法,使得支持GET、POST、PUT与DELETE请求。


    HiddenHttpMethodFilter
    org.springframework.web.filter.HiddenHttpMethodFilter


    HiddenHttpMethodFilter
    /*

5. 配置Spring配置文件

Spring配置文件路径是配置在web.xml ContextLoaderListener中。

初始的Spring配置文件需要配置包扫描,将满足条件的Java Bean注入到Spring容器中,由Spring进行管理。



    

6. 配置Spring MVC配置文件

Spring MVC配置文件路径是配置在web.xml DispatcherServlet中。

初始的Spring MVC配置文件需要配置以下3项:

  • 包扫描。扫描所有Controller
  • 开启基于注解驱动的mvc。开启后可使用Spring MVC的高级功能
  • 配置默认的静态资源处理器
  • 配置视图解析器


    










    
    
    

静态资源的处理,还可以通过来解析配置

7. 引入前端JS/CSS

前端所需的js/css等静态文件,一般放在webapp目录下

8. 日志框架整合

在整合其他框架的过程中,项目可能会有很多异常/报错,我们需要通过日志来查找问题。

日志框架需要日志门面及日志实现,我们采用slf4j做日志门面,log4j做日志实现,看如何整合。

引入依赖:



    org.slf4j
    slf4j-log4j12
    ${slf4j.version}

引入slf4j-log4j12后,IDEA会自动引入slf4j-api和log4j的依赖,不需要再显示引入

log4j会自动扫描src/main/resources目录下的log4j.xmllog4j.properties,我们把配置文件放在此目录下。

#log4j.properties

#日志输出级别
log4j.rootLogger=debug,stdout,D,E

#设置stdout的日志输出控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#输出日志到控制台的方式,默认为System.out
log4j.appender.stdout.Target = System.out
#设置使用灵活布局
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#灵活定义输出格式
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} -[%p]  method:[%c (%rms)] - %m%n

9. 数据源整合

以Druid为例,需要引入Spring JDBCDruid的依赖,同时数据库连接信息最好单独出一个配置文件来管理,再在Spring配置文件中引入外部的配置文件。

依赖:



    org.springframework
    spring-jdbc
    ${spring.version}




    com.alibaba
    druid
    ${druid.version}

注意:要记得引入Spring jdbc的依赖,否则后面出问题会很难找(有日志还好找一点,所以最好日志框架的整合放到最前面)。

Spring配置:






    
    
    

    
    
    
    
    
    
    
    

10. MyBatis + MySql整合

依赖:



    org.springframework
    spring-jdbc
    ${spring.version}




    org.mybatis
    mybatis
    ${mybatis.version}




    org.mybatis
    mybatis-spring
    ${mybatis.spring.version}




    mysql
    mysql-connector-java
    ${mysql.version}

Spring配置文件中配置MyBatis:

需要配置下面2项:

  • 配置sqlSessionFactory
  • 配置映射扫描器


    
    
    
    
    




    

MyBatis配置文件:

在Spring配置文件sqlSessionFactory配置项中配置了MyBatis的配置文件,MyBatis的配置文件中,需要配置骆驼命名法则,还可以配置别名。


    
    




    

11. 需要深入挖掘的点

  • ContextLoaderListener作用及源码分析
  • DispatcherServlet作用及源码分析
  • Filter过滤器工作原理
  • Spring/Spring MVC配置文件解析及相关配置项的作用和源码分析
  • 日志框架深入,配置项
  • 日志框架是如何整合进来的,实现原理
  • 什么是数据源

你可能感兴趣的:(IDEA(一) 使用IDEA搭建SSM框架项目)