文章目录
- 博客概要
- 1.项目搭建
- 1.1选择使用maven管理创建项目
- 1.2修改、导入资源
- 1.3创建目录结构
- 2.配置文件
- 2.1Srping配置
- 2.2SpringMVC配置
- 2.3Mybatis配置
- 2.4其他配置文件
- 3.总结
1.项目搭建
1.1选择使用maven管理创建项目
选择合适的架包进行开发,选择自己的SDK。
填写项目信息,“Groupld”填写公司名;“Aftifactld”填写项目名.
选择配置相关的源文件的地址路径,并且配置一下自己的本地仓储。
1.2修改、导入资源
选择“Enable Auto-Import”,让系统自动导包,联网!联网!联网!
修改版本号,修改成自己使用的相应版本。
复制相应配置命令,导入依赖文件,我这里放的不完整,请按照各自开发需求,导入相应文件,导入成功后相应命令字体就会变颜色。
1.3创建目录结构
目录介绍
1.java文件夹——放置项目具体代码
2.resources文件夹——放置资源配置文件
mapper文件夹——放置Mybatis的映射文件
spring文件夹——放置spring、springMVC配置文件
db.properties——数据库配置文件
log4j.properties——日志配置文件
mybatis-config.xml——Mybatis配置文件
3.jsp文件夹——放置前端具体页面
4.target文件夹——放置项目war包
创建过程中需要改变一些文件夹的类型,java文件夹改为“Source Root”类型,resources文件夹改为“Resources Root”类型;配置文件,创建方式也略有区别。
2.配置文件
2.1Srping配置
spring-dao.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 1.获取db.properties文件,获取参数-->
<context:property-placeholder location="classpath:db.properties" />
<!-- 2.获取dataSource数据源对象-->
<!-- 诸多数据库连接池之一,自动释放-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<!-- 2.1配置连接池参数-->
<property name="driverClass" value="${jdbc.driver}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- 2.2优化连接池参数-->
<!-- 访问量限制-->
<property name="maxPoolSize" value="30" />
<property name="minPoolSize" value="10" />
<!-- 关闭数据库连接后,不自动提交,手动提交-->
<property name="autoCommitOnClose" value="false" />
<!-- 超时等待-->
<property name="checkoutTimeout" value="10000" />
<!-- 失败后,重新连接-->
<property name="acquireIncrement" value="3" />
</bean>
<!-- 3.创建sqlSessionFactory(Mybatis核心)-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 3.1注入数据库连接池-->
<property name="dataSource" ref="dataSource" />
<!-- 3.2获取Mybatis的配置文件:Mybatis-config.xml-->
<property name="configLocation" value="classpath:mybatis-config.xml" />
<!-- 3.3扫描包,使用别名-->
<property name="typeAliasesPackage" value="com.wcw.pojo" />
<!-- 3.4加载获取映射文件mapper-->
<property name="mapperLocations" value="classpath:mapper/*.xml" />
</bean>
<!-- 4.获取dao对象:要与数据库打交道,注入容器-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 将dao注入sqlSessionFactory-->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
<property name="basePackage" value="com.wcw.dao" />
</bean>
</beans>
解释名 | 解释内容 |
context:property-placeholder location=" " | "context:property-placeholder"用于Spring实现加载配置文件到容器 “location”——参数配置文件的位置 |
property name=" " value=" " | "property"标签用于设置属性 “name”——属性名 “value”——属性值 |
bean id=" " class=" " | "bean"标签用于在Spring容器中注入类 “id”——起名称 “class”——创建对象所在类的全路径 |
id=“dataSource” class=“com.mchange.v2.c3p0.ComboPooledDataSource” destroy-method=“close” | 这里数据库连接池使用了c3p0 c3p0是一个开放源代码的JDBC连接池 destroy-method=“close”——将destroy方法设置为关闭,当数据库连接不使用时,自动释放,就把数据库连接放入连接池中,方便下次使用 |
name=“maxPoolSize / minPoolSize” values=" " | 设置访问量 max——最大访问 min——最小访问 values——限制数 |
name=“autoCommitOnClose” values=" " | 设置数据库提交,value值设为"false"在关闭数据库后,就不会自动提交 |
name=“checkoutTimeout” values=" " | 设置超时等待时间,value值为等待时间,"1000"为1秒 |
name=“acquireIncrement” values=" " | 设置失败后的重新连接次数,value值为次数 |
id=“sqlSessionFactory” class=“org.mybatis.spring.SqlSessionFactoryBean” | sqlSessionFactory——sql会话工厂 Mybatis核心 |
name=“configLocation” values=" " | 设置Mybatis配置文件,value值为配置文件路径 |
name=“typeAliasesPackage” values=" " | 设置别名 |
name=“mapperLocations” values=" " | 设置映射文件,value为映射文件路径 |
… | … |
spring-service.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:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 1.扫描service包下的所有注解,让注解产生功能-->
<context:component-scan base-package="com.wcw.service" />
<!-- 2.生成事务管理器对象,产生事务管理transctionManager-->
<bean id="transactionManage" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 数据库注入-->
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 3.生成事务,事务管理操作,驱动器-->
<tx:annotation-driven transaction-manager="transactionManage" />
<!-- 4.生成service对象-->
<bean id="paperService" class="com.wcw.service.impl.PaperServiceImpl" />
</beans>
解释名 | 解释内容 |
context:component-scan base-package=" " | 扫描指定包,base-package值为指定包路径 |
tx:annotation-driven transaction-manager=“transactionManage” | tx——transaction事务 tx:annotation-driven—— 支持事务注解 transaction-manager——指定到现有的PlatformTransaction Manager bean的引用,通知会使用该引用 |
… | … |
2.2SpringMVC配置
spring-mvc.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:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<!-- 1.将springMVC加载进入配置文件-->
<!-- 注解作用 开启springMVC的注解模式:(1)自动注册(2)提供一些数据的格式化-->
<mvc:annotation-driven />
<!-- 2.静态资源默认servlet配置
(1)加入对静态资源的处理:js,gif,png
(2)允许使用"/"做整体映射
-->
<mvc:default-servlet-handler />
<!-- 3.网址路径映射进行解析成view,就是根据路径找jsp页面-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 指明解析什么类型的页面-->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<!-- 前缀设置-->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 尾缀设置-->
<property name="suffix" value=".jsp" />
</bean>
<!-- 4.扫描web相关的bean,页面之间的动作由controller产生-->
<context:component-scan base-package="com.wcw.controller" />
</beans>
2.3Mybatis配置
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC " -//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- Mybatis基本配置参数:用于设置Mybatis基本规则 -->
<!-- 1.配置全局属性 -->
<settings>
<!-- 1.1 使用jdbc的getGeneratedKeys获取主键值,表字段自动增长列:自动增长 -->
<setting name="useGeneratedKeys" value="true"/>
<!-- 1.2 字段命名规则:小驼峰法则,使用别名替换列名 -->
<setting name="useColumnLabel" value="true"/>
<!-- 1.3 开启驼峰法则: 通过字段名转换为entity -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
mapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC " -//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace(告诉Mybatis要做什么)-->
<mapper namespace="com.wcw.dao.PaperDao">
<!-- 告诉Mybatis,返回值的样子-->
<resultMap id="paperResultMap" type="Paper">
<id property="pid" column="pId" />
<result property="pname" column="pName" />
<result property="pnum" column="pNum" />
<result property="pdetail" column="pDetail" />
</resultMap>
<!-- 全查-->
<select id="selByAllP" resultMap="paperResultMap">
select * from tb_paper
</select>
</mapper>
解释名 | 解释内容 |
mapper namespace=" " | 用于绑定dao接口的,即面向接口编程 |
property=" " column=" " | property——类中对应的属性名 column——sql返回的列名 |
parameterType=" " | 设置输入相应的参数类型 |
resultType=" " | 直接表示返回类型 |
resultMap=" " | 设置对外部ResultMap的引用 |
pum=#{pnum} | pNum——列名 #{pnum}——{}内与类中对应属性名一致 |
… | … |
… | … |
2.4其他配置文件
db.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/(数据库名)?useSSL=true&characterEncoding=utf-8
jdbc.username=(数据库用户名)
jdbc.password=(数据库密码)
log4j.properties
日志配置文件里的东西,作者本人也不太懂,请务必"面向百度编程"= =
log4j.rootLogger=Error,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.conversionPattern=%5P [%t] - %m%n
web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>ssm_maven</display-name>
<!-- 过滤器:对一切请求进行条件过滤,不管是什么请求,首先都会过滤掉-->
<filter>
<filter-name>encodingFilter</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>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 程序入口需要去找jsp页面,需要加载SpringMVC加载视图解析器-->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 告诉SpringMVC需要对那些页面解析,配置MVC框架需要加载的文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-*.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<!-- 默认匹配所有的请求-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
解释名 | 解释内容 |
-name | 设置名称 |
-class | 设置路径 |
init-param | 设置参数 |
-value | 设置值 |
-mapping | 设置映射 |
url-pattern | 设置元素指定对应路径 |
… | … |
3.总结
其实以上蛮多的知识点解释,在实际开发的时候,对于初级码农来说并没有什么很大的作用,因为在大多数情况之下,配置文件里的很多架构信息都是由其他相关人员设计好的,初级码农只要求懂自己"要改什么"、“在哪里改”、“怎么改"等一些基本的技能点就好了,因为有些配置文件里的标签啊啥的,只有到了一定境界了之后,才有足够的底气去支配这些偏底层架构的工作,目前来讲的话,咱还是老老实实先巩固手头的技能,毕竟"一口吃不成胖子”,更何况咱还是"吃不胖"体质= =