热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javamaven、springmvc、mybatis搭建简单Web项目学习笔记

前言:空余的时间,学学Java,没准哪天用的到;环境搭建折腾了好几天,总算搞顺了,也做个学习笔记,以防后面会忘记; 一、安装文件及介绍JDK:jdk1.8.077eclipse-m

前言:

  空余的时间,学学 Java,没准哪天用的到;

  环境搭建折腾了好几天,总算搞顺了,也做个学习笔记,以防后面会忘记;

 

一、安装文件及介绍

  JDK:jdk1.8.0 77

  eclipse-maven:eclipse-maven

  tomcat:apache-tomcat-8.0.33

  整合资料参考:http://www.iteye.com/blogs/subjects/ssm_demo

 

  这个的配置过程比较简单,搞清楚关系就可以了。

 

二、maven、springmvc、mybatis 简单介绍

  maven:.NET 下的 NuGet,dll 管理库,也可以自己搭建起来用,程序界的思想都是相同的;

  springmvc:就是一套非常火热的且实现了 ioc、di 的一套 mvc 框架;

    看看开涛大神博客对 springmvc 的解释;

  mybatis:数据库访问的一套框架,我也不知道该不该这样的描述他,ORM 框架;

    全解释:自定义SQL、存储过程和高级映射的持久层框架;

    一般的教程都是引导使用逆向工程的方式去映射所有表的 xml 文件,个人建议 xml 文件还是自己写比较好一点,

    但是这个也要根据不同的业务来定;相对来讲 MyBatis 灵活性还是不错的;

 

三、基础环境搭建

  1、JDK 安装好了以后配置下系统环境变量;

  2、eclipse 配置一下 mavn;

  3、eclipse 修改一下全局编码集、以及编译的 jdk 版本;

  案例:http://www.cnblogs.com/alunchen/p/5632497.html

 

四、向世界问个好

  在新建完成后的 maven 项目中,跟目录下会有一个 pom.xml 文件,

  文件是 maven 默认的配置文件,配置当前项目所需要的 jar 包;

  参考如下:

  pom.xml

  1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3     <modelVersion>4.0.0modelVersion>
  4     <groupId>com.cjtgroupId>
  5     <artifactId>MyMavenartifactId>
  6     <packaging>warpackaging>
  7     <version>0.0.1-SNAPSHOTversion>
  8     <name>MacRobot Maven Webappname>
  9     <url>http://maven.apache.orgurl>
 10     <properties>
 11         
 12         <spring.version>4.0.2.RELEASEspring.version>
 13         
 14         <mybatis.version>3.2.6mybatis.version>
 15         
 16         <slf4j.version>1.7.7slf4j.version>
 17         <log4j.version>1.2.17log4j.version>
 18     properties>
 19 
 20     <dependencies>
 21         <dependency>
 22             <groupId>junitgroupId>
 23             <artifactId>junitartifactId>
 24             <version>3.8.1version>
 25             <scope>testscope>
 26         dependency>
 27  
 28         <dependency>   
 29               <groupId>dom4jgroupId>    
 30               <artifactId>dom4jartifactId>    
 31               <version>1.6version>   
 32         dependency>  
 33         
 34         
 35         <dependency>
 36             <groupId>javaxgroupId>
 37             <artifactId>javaee-apiartifactId>
 38             <version>7.0version>
 39         dependency>
 40         
 41         <dependency>
 42             <groupId>org.springframeworkgroupId>
 43             <artifactId>spring-coreartifactId>
 44             <version>${spring.version}version>
 45         dependency>
 46 
 47         <dependency>
 48             <groupId>org.springframeworkgroupId>
 49             <artifactId>spring-webartifactId>
 50             <version>${spring.version}version>
 51         dependency>
 52         <dependency>
 53             <groupId>org.springframeworkgroupId>
 54             <artifactId>spring-oxmartifactId>
 55             <version>${spring.version}version>
 56         dependency>
 57         <dependency>
 58             <groupId>org.springframeworkgroupId>
 59             <artifactId>spring-txartifactId>
 60             <version>${spring.version}version>
 61         dependency>
 62 
 63         <dependency>
 64             <groupId>org.springframeworkgroupId>
 65             <artifactId>spring-jdbcartifactId>
 66             <version>${spring.version}version>
 67         dependency>
 68 
 69         <dependency>
 70             <groupId>org.springframeworkgroupId>
 71             <artifactId>spring-webmvcartifactId>
 72             <version>${spring.version}version>
 73         dependency>
 74         <dependency>
 75             <groupId>org.springframeworkgroupId>
 76             <artifactId>spring-aopartifactId>
 77             <version>${spring.version}version>
 78         dependency>
 79 
 80         <dependency>
 81             <groupId>org.springframeworkgroupId>
 82             <artifactId>spring-context-supportartifactId>
 83             <version>${spring.version}version>
 84         dependency>
 85 
 86         <dependency>
 87             <groupId>org.springframeworkgroupId>
 88             <artifactId>spring-testartifactId>
 89             <version>${spring.version}version>
 90         dependency>
 91         
 92         <dependency>
 93             <groupId>org.mybatisgroupId>
 94             <artifactId>mybatisartifactId>
 95             <version>${mybatis.version}version>
 96         dependency>
 97         
 98         <dependency>
 99             <groupId>org.mybatisgroupId>
100             <artifactId>mybatis-springartifactId>
101             <version>1.2.2version>
102         dependency>
103         
104         <dependency>
105             <groupId>javaxgroupId>
106             <artifactId>javaee-apiartifactId>
107             <version>7.0version>
108         dependency>
109         
110         <dependency>
111             <groupId>mysqlgroupId>
112             <artifactId>mysql-connector-javaartifactId>
113             <version>5.1.30version>
114         dependency>
115         
116         <dependency>
117             <groupId>commons-dbcpgroupId>
118             <artifactId>commons-dbcpartifactId>
119             <version>1.2.2version>
120         dependency>
121         
122         <dependency>
123             <groupId>jstlgroupId>
124             <artifactId>jstlartifactId>
125             <version>1.2version>
126         dependency>
127         
128         
129         <dependency>
130             <groupId>log4jgroupId>
131             <artifactId>log4jartifactId>
132             <version>${log4j.version}version>
133         dependency>
134 
135 
136         
137         <dependency>
138             <groupId>com.alibabagroupId>
139             <artifactId>fastjsonartifactId>
140             <version>1.1.41version>
141         dependency>
142 
143 
144         <dependency>
145             <groupId>org.slf4jgroupId>
146             <artifactId>slf4j-apiartifactId>
147             <version>${slf4j.version}version>
148         dependency>
149 
150         <dependency>
151             <groupId>org.slf4jgroupId>
152             <artifactId>slf4j-log4j12artifactId>
153             <version>${slf4j.version}version>
154         dependency>
155         
156         
157         <dependency>
158             <groupId>org.codehaus.jacksongroupId>
159             <artifactId>jackson-mapper-aslartifactId>
160             <version>1.9.13version>
161         dependency>
162         
163         <dependency>
164             <groupId>commons-fileuploadgroupId>
165             <artifactId>commons-fileuploadartifactId>
166             <version>1.3.1version>
167         dependency>
168         <dependency>
169             <groupId>commons-iogroupId>
170             <artifactId>commons-ioartifactId>
171             <version>2.4version>
172         dependency>
173         <dependency>
174             <groupId>commons-codecgroupId>
175             <artifactId>commons-codecartifactId>
176             <version>1.9version>
177         dependency>
178 
179     dependencies>
180     <build>
181         <finalName>HelloWorldfinalName>
182         <plugins>
183             <plugin>
184                 <groupId>org.apache.maven.pluginsgroupId>
185                 <artifactId>maven-compiler-pluginartifactId>
186                 <version>2.3.2version>
187                 <configuration>
188                     <source>1.8source>
189                     <target>1.8target>
190                 configuration>
191             plugin>
192         plugins>
193     build>
194 project>
View Code

  PS:修改完 pom.xml 后,建议先 Maven Update 一下,将需要的包文件下载下来,

  对应 eclipse 中也可以查看到下载后的 jar 包文件,路径也在其中可修改,默认在 文档目录下的 .m2 文件夹,建议不要修改;

  

  web.xml 了,web 项目主配置文件

 1 xml version="1.0" encoding="UTF-8"?>  
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
 3     xmlns="http://java.sun.com/xml/ns/javaee"  
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
 5     version="3.0">  
 6     
 7     <display-name>Archetype Created Web Applicationdisplay-name>
 8 
 9     
10     <context-param>
11         <param-name>contextConfigLocationparam-name>
12         <param-value>classpath:spring-mybatis.xmlparam-value>
13     context-param>
14 
15     
16     <filter>
17         <filter-name>characterEncodingFilterfilter-name>
18         <filter-class>org.springframework.web.filter.CharacterEncodingFilter
19         filter-class>
20         <async-supported>trueasync-supported>
21         <init-param>
22             <param-name>encodingparam-name>
23             <param-value>UTF-8param-value>
24         init-param>
25     filter>
26     
27     <filter-mapping>
28         <filter-name>characterEncodingFilterfilter-name>
29         <url-pattern>/*url-pattern>
30     filter-mapping>
31 
32     
33     <listener>
34         <listener-class>org.springframework.web.context.ContextLoaderListener
35         listener-class>
36     listener>
37     
38     <listener>
39         <listener-class>org.springframework.web.util.IntrospectorCleanupListener
40         listener-class>
41     listener>
42 
43     
44     <servlet>
45         <servlet-name>SpringMVCservlet-name>
46         <servlet-class>org.springframework.web.servlet.DispatcherServlet
47         servlet-class>
48         <init-param>
49             <param-name>contextConfigLocationparam-name>
50             <param-value>classpath:spring-mvc.xmlparam-value>
51         init-param>
52         <load-on-startup>1load-on-startup>
53         <async-supported>trueasync-supported>
54     servlet>
55 
56     <servlet-mapping>
57         <servlet-name>SpringMVCservlet-name>
58         
59         <url-pattern>/url-pattern>
60     servlet-mapping>
61 
62     <welcome-file-list>
63         <welcome-file>/index.jspwelcome-file>
64     welcome-file-list>
65 
66 web-app>  
View Code

  PS:配置项目与 springmvc 的依赖关系,就是本项目采用 springmvc 的入口配置;

  当 web 项目启动时,会根据配置文件下的节点信息找到对应的配置文件完成 springmvc 的核心功能;

  仔细看节点,会找 spring-mvc、spring-mybatis 两个 xml 文件;

 

  spring-mvc.xml

 1 xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xmlns:mvc="http://www.springframework.org/schema/mvc"
 6     xsi:schemaLocation="http://www.springframework.org/schema/beans    
 7                         http://www.springframework.org/schema/beans/spring-beans-3.1.xsd    
 8                         http://www.springframework.org/schema/context    
 9                         http://www.springframework.org/schema/context/spring-context-3.1.xsd    
10                         http://www.springframework.org/schema/mvc    
11                         http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
12                         
13     
14     <context:component-scan base-package="com.helloworld.controller" />
15     
16     <bean id="mappingJacksonHttpMessageConverter"
17         class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
18         <property name="supportedMediaTypes">
19             <list>
20                 <value>text/html;charset=UTF-8value>
21             list>
22         property>
23     bean>
24     
25     <bean
26         class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
27         <property name="messageConverters">
28             <list>
29                 <ref bean="mappingJacksonHttpMessageConverter" /> 
30             list>
31         property>
32     bean>
33     
34     <bean
35         class="org.springframework.web.servlet.view.InternalResourceViewResolver">
36         
37         <property name="prefix" value="/WEB-INF/" />
38         <property name="suffix" value=".jsp" />
39     bean>
40           
41     
42     <bean id="multipartResolver"
43         class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
44         
45         <property name="defaultEncoding" value="utf-8" />
46         
47         <property name="maxUploadSize" value="10485760000" />
48         
49         <property name="maxInMemorySize" value="40960" />
50     bean>
51     
52     
69       
70         
71       <mvc:annotation-driven>mvc:annotation-driven>  
72          
73        <mvc:interceptors>  
74               
75             <mvc:interceptor>  
76                 <mvc:mapping path="/**"/>  
77                 <bean class="com.helloworld.controller.BaseController">bean>  
78             mvc:interceptor>
79       mvc:interceptors> 
80 beans>
View Code

 

  PS:配置 springmvc 的基本项,核心就是这个包扫描,

  当 web 项目时会找到  base-package="com.macrobotinc.controller" 下的所有控制器;

  

  spring-mybatis.xml

 1 xml version="1.0" encoding="UTF-8"?>  
 2 <beans xmlns="http://www.springframework.org/schema/beans"  
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
 4     xmlns:context="http://www.springframework.org/schema/context"  
 5     xmlns:mvc="http://www.springframework.org/schema/mvc"  
 6     xsi:schemaLocation="http://www.springframework.org/schema/beans    
 7                         http://www.springframework.org/schema/beans/spring-beans-3.1.xsd    
 8                         http://www.springframework.org/schema/context    
 9                         http://www.springframework.org/schema/context/spring-context-3.1.xsd    
10                         http://www.springframework.org/schema/mvc    
11                         http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">  
12       
13     <context:component-scan base-package="com.helloworld.service" />  
14         
15       
16     <bean id="propertyConfigurer"  
17         class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
18         <property name="location" value="classpath:jdbc.properties" />  
19     bean>  
20   
21     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  
22         destroy-method="close">  
23         <property name="driverClassName" value="${driver}" />  
24         <property name="url" value="${url}" />  
25         <property name="username" value="${username}" />  
26         <property name="password" value="${password}" />  
27           
28         <property name="initialSize" value="${initialSize}">property>  
29           
30         <property name="maxActive" value="${maxActive}">property>  
31           
32         <property name="maxIdle" value="${maxIdle}">property>  
33           
34         <property name="minIdle" value="${minIdle}">property>  
35           
36         <property name="maxWait" value="${maxWait}">property>  
37     bean>  
38   
39       
40     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
41         <property name="dataSource" ref="dataSource" />  
42           
43         <property name="mapperLocations" value="classpath:com/helloworld/mapping/*.xml">property>  
44     bean>  
45   
46       
47     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
48         <property name="basePackage" value="com.helloworld.dao" />  
49         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory">property>  
50     bean>  
51   
52       
53     <bean id="transactionManager"  
54         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
55         <property name="dataSource" ref="dataSource" />  
56     bean>  
57   
58 beans> 
View Code

  PS:同上,找到 base-package="com.helloworld.service" 下的所有数据库操作接口;

  意思我懂,但是描述不出来;

 

  jdbc.properties

 1 driver=com.mysql.jdbc.Driver
 2 url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
 3 username=root
 4 password=111111
 5 #定义初始连接数  
 6 initialSize=1
 7 #定义最大连接数  
 8 maxActive=20
 9 #定义最大空闲  
10 maxIdle=20
11 #定义最小空闲  
12 minIdle=1
13 #定义最长等待时间  
14 maxWait=60000
View Code

  log4j.properties

 1 ### set log levels ###
 2 #log4j.rootLogger = debug , stdout , D , E
 3 log4j.rootLogger = debug , stdout , D
 4 
 5 ###  output to the console ###
 6 log4j.appender.stdout = org.apache.log4j.ConsoleAppender
 7 log4j.appender.stdout.Target = System.out
 8 log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
 9 #log4j.appender.stdout.layout.COnversionPattern= %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
10 log4j.appender.stdout.layout.COnversionPattern= %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
11 
12 ### Output to the log file ###
13 log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
14 log4j.appender.D.File = ${springmvc.root}/WEB-INF/logs/log.log
15 log4j.appender.D.Append = true
16 log4j.appender.D.Threshold = DEBUG 
17 log4j.appender.D.layout = org.apache.log4j.PatternLayout
18 log4j.appender.D.layout.COnversionPattern= %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
19 
20 ### Save exception information to separate file ###
21 log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
22 log4j.appender.D.File = ${springmvc.root}/WEB-INF/logs/error.log 
23 log4j.appender.D.Append = true
24 log4j.appender.D.Threshold = ERROR 
25 log4j.appender.D.layout = org.apache.log4j.PatternLayout
26 log4j.appender.D.layout.COnversionPattern= %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
27 
28 log4j.logger.com.macrobotinc.dao=debug
View Code

 

  这个时候基本的配置已经有了,和 .NET MVC 比起来配置确实很花时间,

  但是一套会自己部署了以后,以后就知道了,其实也很简单。


推荐阅读
author-avatar
mobiledu2502910233
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有