我的App全栈之路(3)后台环境搭建
来源:互联网 发布:tfband知乎 编辑:程序博客网 时间:2024/06/13 21:47
在安装好eclipse后,不过这里记住一定要安装高版本的eclipse,这里我先扔一个连接,我是参考这篇博文搭建的环境http://www.cnblogs.com/GarfieldEr007/p/5746263.html,
搭建的环境是spring+springmvc+mybatis,也不要问我为什么选SSM,因为我高兴.
这里大家可以按照我上面给出的连接地址进行项目的搭建,反正我是一次就成功了,在成功了之后我,顺便对所有maven依赖的jar都进行了升级,我自己现在用的都是最新版本的jar,毕竟我有那么一点点强迫症,平时ide有更新我都会点更新,东西最新的才好,扯远了.如果你们按照他的教程配置的话,这期间什么问题也不会遇到,单元测试也能顺利通过.
好了下面我给我本人修改过的工程的一些配置文件,后面也会把工程上传供大家下载学习.
1.首先我们按照他的教程的顺序,先说明我使用的jdk版本是1.7,因为引用了javaee7.0标准的javaee-api.jar和javaee-web-api.jar,然后我们贴出我自己的pom.xml文件
<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.ssm</groupId> <artifactId>mszd</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <properties> <!-- spring版本号 --> <spring.version>4.3.9.RELEASE</spring.version> <!-- log4j日志文件管理包版本 --> <slf4j.version>1.7.25</slf4j.version> <log4j.version>1.2.17</log4j.version> <!-- junit版本号 --> <junit.version>4.12</junit.version> <!-- mybatis版本号 --> <mybatis.version>3.4.4</mybatis.version> </properties> <dependencies> <!-- 添加Spring依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</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-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</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-test</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <!--单元测试依赖 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <!-- 日志文件管理包 --> <!-- log start --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency> <!-- log end --> <!--spring单元测试依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> <!--mybatis依赖 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis/spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version> </dependency> <!-- mysql驱动包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>6.0.6</version> </dependency> <!-- javaee-api包 注意和项目使用的JDK版本对应 --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency> <!-- javaee-web-api包 注意和项目使用的JDK版本对应 --> <dependency> <groupId>javax</groupId> <artifactId>javaee-web-api</artifactId> <version>7.0</version> <scope>provided</scope> </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.8.1</version></dependency> <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl --><dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.12</version></dependency> </dependencies> </project>如果你细心比较了会发现,我其实就是在最后多了一个jackson的引用,这个jackson的好处就是,允许controller返回json数据,这个后面说
2.接着我们看看我们的jdb.properties配置文件,这个文件主要就是配置了几个键值对,一眼就能看出来
jdbc_driverClassName=com.mysql.jdbc.Driver jdbc_url=jdbc:mysql://localhost:3306/mszd?useUnicode=true&characterEncoding=utf8&serverTimezone=GMTjdbc_user=root jdbc_password=123456这里我在jdbc_url后面对了一串,这一串的意思也是一眼就能看出来是干啥的,让mysqlutf-8编码,时区为GMT
3.接下来就是application.xml,我这里改成了applicationContext.xml,命名无所谓
<?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" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 引入jdbc配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:jdbc.properties</value> <!--要是有多个配置文件,只需在这里继续添加即可 --> </list> </property> </bean> <!-- 配置数据源 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <!-- 使用properties来配置 --> <property name="driverClassName"> <value>${jdbc_driverClassName}</value> </property> <property name="url"> <value>${jdbc_url}</value> </property> <property name="username"> <value>${jdbc_user}</value> </property> <property name="password"> <value>${jdbc_password}</value> </property> </bean> <!-- 自动扫描了所有的XxxxMapper.xml对应的mapper接口文件,这样就不用一个一个手动配置Mpper的映射了,只要Mapper接口类和Mapper映射文件对应起来就可以了。 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.lin.dao" /> </bean> <!-- 事务管理 --> <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 配置Mybatis的文件 ,mapperLocations配置**Mapper.xml文件位置,configLocation配置mybatis-config文件位置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath*:com/lin/mapper/*.xml" /> <property name="configLocation" value="classpath:mybatis-config.xml" /> </bean> <!-- 自动扫描注解的bean --> <context:component-scan base-package="com.lin.service.imp" /></beans>这里和教程的差不多没什么改变就是自己的一些路径什么的改一下就行了
4.我们略过log4j的配置,这里你只要配置好日志打印路径就行了 ,看看pring-mvc.xml文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd"> <!-- 扫描controller(controller层注入) --> <context:component-scan base-package="com.lin.controller"/> <bean id="mappingJackson2HttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/json;charset=UTF-8</value> <value>text/html;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean> <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="cacheSeconds" value="0" /> <property name="messageConverters"> <list> <ref bean="mappingJackson2HttpMessageConverter" /> </list> </property> </bean> <!-- 对模型视图添加前后缀 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/view/" p:suffix=".jsp"/> <mvc:annotation-driven /> </beans>这里和教程中还是很不相同的,因为我们spring框架引用的是最新的,旧版本的spring框架中的mappingJacksonHttpMessageConverter在高版本中改成了mappingJackson2HttpMessageConverter所以这里配置一下,然后就是加入了对jackson 的支持.后面会说这个jackson怎么使用的
5.最后我们看看web.xml文件
<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_ID" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><!-- 起始欢迎界面 --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- 读取spring配置文件 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!-- 设计路径变量值 --> <context-param> <param-name>webAppRootKey</param-name> <param-value>springmvc.root</param-value> </context-param> <!-- Spring字符集过滤器 --> <filter> <filter-name>SpringEncodingFilter</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> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>SpringEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 日志记录 --> <context-param> <!-- 日志配置文件路径 --> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.properties</param-value> </context-param> <context-param> <!-- 日志页面的刷新间隔 --> <param-name>log4jRefreshInterval</param-name> <param-value>6000</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- springMVC核心配置 --> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!--spingMVC的配置路径 --> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- 错误跳转页面 --> <error-page> <!-- 路径不正确 --> <error-code>404</error-code> <location>/WEB-INF/errorpage/404.jsp</location> </error-page> <error-page> <!-- 没有访问权限,访问被禁止 --> <error-code>405</error-code> <location>/WEB-INF/errorpage/405.jsp</location> </error-page> <error-page> <!-- 内部错误 --> <error-code>500</error-code> <location>/WEB-INF/errorpage/500.jsp</location> </error-page> <!--拦截所有以do结尾的请求--> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
这个文件和教程的也差不多就是改一下里面的配置项改成你自己工程对应的就行了,最后我加了一个对于.do结尾的请求的拦截,这个就是我们后面安卓端接口的后缀,
在这期间你可能会遇到各种各样的问题,比如数据库连接的问题,SQL语法的问题等等,这些在百度都能找到,下一篇我们正式开始开发了
- 我的App全栈之路(3)后台环境搭建
- 我的App全栈之路(1)环境的搭建
- 我的App全栈之路(2)数据库设计
- 我的App全栈之路(6)安卓端开发
- 我的QT之路环境搭建
- 我的App全栈之路(4)第一个接口的诞生
- 我的App全栈之路(5)实现首页的分页
- 【全栈工程师之路】环境搭建-CentOS服务器配置
- JavaScript全栈之路——开发环境的搭建
- java后台开发入门之环境搭建
- iOS学习之路--通过APP边学编写(二)搭建基础的开发环境
- 我的SSH之旅 (1) : 开发环境的搭建
- 我的博客旅行之Android环境搭建
- 我的NDK开发之旅 No.1 环境搭建
- 我的汇编学习之行(1)-搭建环境
- Java我的高效编程之环境搭建
- Java我的高效编程之环境搭建
- Java我的高效编程之环境搭建
- 基于localStorage开发的前端缓存jquery插件,jquery.cache.js
- 南阳理工 7街区最短路径问题
- 常用视频转换IC汇总
- 信息化系统工程IPTV或OTT-TV节目系统解决方案
- 【C语言】FORK子进程的创建和回收(按顺序回收)
- 我的App全栈之路(3)后台环境搭建
- 韩顺平servlet学习笔记01-创建servlet的三种方式
- opencv 图像处理
- linux学习 ddns
- Openwrt:编译固件提示[mktplinkfw] error: images are too big 错误
- 360脱壳-native函数还原笔记-2017-06-25
- mongodb中字符串日期的比较
- coreseek Windows下安装
- 关于python3,numpy-loadtxt的编码问题