SSM+maven项目配置文件详解(一)

2015年7月份毕业工作以来,陆陆续续也做了很多项目,基本上都是SSM框架,即:Spring+SpringMVC+MyBatis,项目是Maven构建,每次接手新的项目或者平时项目出现问题的时候,大致统计了下,主要问题一般都出现在SSM项目的配置文件上面,虽然网上也有各个配置文件的详细介绍,但整体感觉都比较零碎,所以我想系统的介绍下整个SSM配置文件的作用和加载过程.


一,闲话少叙,先看下SSM项目的配置文件框架图如下:

SSM+maven项目配置文件详解(一)_第1张图片


二,配置文件整体上可以分为五大部分

1,conf包下的各种给参数赋值的文件

2,maven的配置文件pom.xml文件

3,spring mvc的web.xml的配置文件

4,spring包下各种配置文件

5,log4j等日志的配置文件

这五大部分的之间的调用关系如下图所示:
SSM+maven项目配置文件详解(一)_第2张图片




三,各配置文件在项目中的调用关系

项目启动后会首先加载web.xml文件,先解析有关springmvc的有关配置,比如,监听器,过滤器等内容,然后加载spring的配置文件,主要包括bean的注入,定时器的配置等功能,

最后将spring下的配置文件下的bean注入到Java类中进行调用,进而完成整个配置文件的加载.



四,接下来将分别介绍以上5中配置文件的详解

1,pom.xml文件的配置详解,pom文件主要有2个作用:

下载jar包

给各种参数赋值

一个pom文件基本上包含以下部分


	4.0.0
	iapp-webapp
	war
    
        
            
                org.mortbay.jetty
                maven-jetty-plugin
                6.1.26
                
                    
                        
                            8090
                            0
                        
                    
                
            
        
        iapp-webapp
    
    
    
	
		
		
			org.apache.poi
			poi-ooxml
			3.8
		
		
			org.quartz-scheduler
			quartz
			2.2.1
		
	


    
	
		
			development
			
				 <_db_mysql_driver>com.mysql.jdbc.Driver
                <_db_mysql_url>jdbc:mysql://ip:port/domainName?allowMultiQueries=true
                <_db_mysql_user>userName
				<_db_mysql_pwd>123456
				<_db_mysql_maxActive>255
				<_db_mysql_maxIdle>10
				<_db_mysql_minIdle>2
				<_db_mysql_maxWait>15000
				<_timeBetweenEvictionRunsMillis>60000
				<_minEvictableIdleTimeMillis>180000
				<_testWhileIdle>true
				<_validationQuery>select 1
				<_removeAbandoned>true
				<_removeAbandonedTimeout>180
			
			
			    
				true
			
		

		
			production
			
			    <_db_mysql_driver>com.mysql.jdbc.Driver
				<_db_mysql_url>jdbc:mysql://ip:port/domainName?allowMultiQueries=true
				<_db_mysql_user>userName
				<_db_mysql_pwd>123456
				<_db_mysql_maxActive>127
				<_db_mysql_maxIdle>5
				<_db_mysql_minIdle>2
				<_db_mysql_maxWait>16000
				<_timeBetweenEvictionRunsMillis>60000
				<_minEvictableIdleTimeMillis>180000
				<_testWhileIdle>true
				<_validationQuery>select 1
				<_removeAbandoned>true
				<_removeAbandonedTimeout>180
			
			
				false
			
		
	


2,conf包下配置文件详解,一般该文件夹下的文件都是properties文件,下面以jdbc.properties进行讲解


#由于一般本地开发环境和线上环境的mysql的配置不相同,所以一般在pom文件中分别配置不同的值,
#在这里只引用pom文件中的值即可,引入pom文件中值的格式是:${pom文件中值}

#mysql数据库驱动,由于该驱动在测试环境下和线上环境的值都一样所以直接赋值
DB_MSSQL_DRIVER=com.mysql.jdbc.Driver
#数据库地址
DB_MSSQL_URL=${_db_mysql_url}
#用户名
DB_MSSQL_USER=${_db_mysql_user}
#密码
DB_MSSQL_PW=${_db_mysql_pwd}
#定义最大连接数,连接池的最大值,同一时间可以从池分配的最多连接数量,0时无限制
maxActive=${_db_mysql_maxActive}
#定义最大空闲,最大空闲值,当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,
#一直减少到maxIdle为止,0时无限制 
maxIdle=${_db_mysql_maxIdle}
#定义最小空闲,当空闲的连接数少于阈值时,连接池就会预先申请一些连接,以免洪峰来时来不及申请 
minIdle=${_db_mysql_minIdle}
#定义最长等待时间(超时等待时间,单位:毫秒) 
maxWait=${_db_mysql_maxWait}
#毫秒秒检查一次连接池中空闲的连接
timeBetweenEvictionRunsMillis=${_timeBetweenEvictionRunsMillis}
#连接保持空闲而不被驱逐的最长时间
minEvictableIdleTimeMillis=${_minEvictableIdleTimeMillis}
#在空闲时检查有效性
testWhileIdle=${_testWhileIdle}

#要求必需是个SELECT类型的SQL语句,至少返回一行,由于它会在所有应用的SQL语句执行之前运行一次,
#所以原则上应该对数据库服务器带来的压力越小越好,推荐使用“SELECT 1
validationQuery=${_validationQuery}

#是否开启自动清理
removeAbandoned=${_removeAbandoned}
#自动回收超时时间(以秒数为单位)
removeAbandonedTimeout=${_removeAbandonedTimeout}

3,web.xml文件的配置详解,一般包含

context-param(用于加载文件)

listener(加载springmvc的监听器 )

filter(进行url地址请求的过滤器)

servlet(进行servlet配置)

具体内容如下:



    syslog
    
    
    
        contextConfigLocation
        classpath:spring/app-config.xml
    
    
    
    
        org.springframework.web.context.ContextLoaderListener
    
    
    
    
        HiddenHttpMethodFilter
        org.springframework.web.filter.HiddenHttpMethodFilter
    
    
        HiddenHttpMethodFilter
        springmvc
    
    
    
        EncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
    
    
        EncodingFilter
        /* 
    
    
    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:spring/springmvc-servlet.xml
        
        1
    
    
        springmvc
        /
    
    
    
    
        404
        /WEB-INF/error/error_404.html
    
       

接下来开始介绍spring文件夹下的文件配置

4,app-config.xml文件的详情如下



   
    
    
    
     
    
    
    
    
    
    
    
    
        
            
                classpath:conf/important.properties
                classpath:conf/jdbc.properties
                classpath:conf/web-service.properties
                 classpath:authen.properties
            
        
    
    
    
    
    
    
    
    
    

5,springmvc-servlet.xml主要用于加载静态资源,页面,登录拦截之类功能,详情如下:



	
	
	
	
	
	
	
	
	
	

    
	
		
			
				classpath:conf/spring-velocity.properties
				classpath:authen.properties
			
		
	

    
	
		 
		
	
	
	
	
		
		
		  
		
		
		
		  
		
		 
		 
		 
		
			
				0.0.1
				${demowebapp.homepage}
			
		
	
	
	
	
		
		
	


	
	
		
		
		
		
			
				
				
			
		
		
			
				
			
		
		
			
				
			
		
	
	



6,spring-db-config.xml主要用于数据库的连接,事务的管理,mapper文件和dao层文件的加载等,详情如下




	
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    
    
    
    
        
    

    
    
        
        
        
            classpath:mapper/**/*.xml
        
    

    
    
        
        
    

7,service-bean.xml的主要用于配置各种bean,用来给java类提供各种服务,详情如下



  
    
    
     
	
		
		
	
	
	
		
		
		
   
 

8,log4j.xml的配置详情

log4j.xml配置文件只需要放到resouce文件夹下就可以了,系统会自动读取,不需要显性的引入,整体上SSM框架关系不大,网上都可以找到详细的配置讲解,我会在下一篇博客里专门来介绍.


五,以上就是整个内容,欢迎大家讨论,指正!

你可能感兴趣的:(代码)