导入所需要的jar包。可以通过我的百度云链接进行下载(要注意下载的版本的使用,不同版本的jar包导入也有可能导致项目框架搭建的失败。)
百度云链接 http://pan.baidu.com/s/1pKCphXL
百度云密码 1d21
将所有jar包放在lib文件下面。
接下来最重要的五个配置文件。
最先配置数据库连接文件 十分简单 代码就不贴了 百度一下 一大把 (要注意的是自己数据库访问的url以及驱动加载)
输入需要访问数据库的url以及数据库的登录名以及密码。然后在其他配置文件中获取该文件信息。
配置log4j打印日志 这里也十分简单,原封不动的复制上去就可以了。(这个也百度一下吧。因为这里没有什么要改动的东西)
该文件可用于在控制台打印基本信息。也可以将信息以文件的方式记载在电脑的某个位置
1.springMVC-servlet文件
//需要扫描的controller文件
<context:component-scan base-package="main.java.com.yxr.controller"/>
<mvc:annotation-driven />
<mvc:default-servlet-handler/>
//转向界面路径解析
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 需要使用导出时进行的spring配置-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8" />
<!-- 指定所上传文件的总大小不能超过10485760000B。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="10485760000" />
<property name="maxInMemorySize" value="40960" />
</bean>
2.application 文件的配置
开启注解扫描
<context:annotation-config />
<!-- 设定Spring 去哪些包中找Annotation -->
<context:component-scan base-package="main.java.com.yxr" />
//暂且理解为找到jdbc的配置文件
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
//明明我将文件放在src.main下面的config包文件下面,为什么寻找的路径却在这里 是因为项目编译之后会在web-inf下面生成
<value>/WEB-INF/classes/main/config/jdbc.properties</value>
</property>
</bean>
//这一块就是拿到jdbc文件中的一些信息
<bean id="DataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
//这一块显而易见是 包所要扫描的基类
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="DataSource"/>
<property name="packagesToScan">
<list>
<value>main.java.com.yxr.model</value>
</list>
</property>
<property name="hibernateProperties">
//所使用的sql方言 以及设置是否显示sql语句
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
//这里是比较重要的地方 个人觉得 一共有四种取值 update 不改变表结构 validate 验证表结构
//create 创建表存在则删除再创建 这样一旦表中有数据则后果不堪设想 create-drop tomcat启动时创建 tomcate关闭时销毁
//所以我在这里使用update
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.format_sql">false</prop>
</props>
</property>
</bean>
<!-- 开启HibernateTemplate,并且为其注入SessionFactory
使用HibernateTemplate不太方便的就是要获取session得通过getSessionFactory()方法获取 -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 配置Spring的事务处理 -->
<!-- 创建事务管理器-->
<bean id="txManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置AOP,Spring是通过AOP来进行事务管理的 -->
<aop:config>
<!-- 设置pointCut表示哪些方法要加入事务处理 -->
<!-- 以下的事务是声明在DAO中,但是通常都会在Service来处理多个业务对象逻辑的关系,注入删除,更新等,此时如果在执行了一个步骤之后抛出异常
就会导致数据不完整,所以事务不应该在DAO层处理,而应该在service,这也就是Spring所提供的一个非常方便的工具,声明式事务 -->
<aop:pointcut id="allMethods"
expression="execution(* main.java.com.yxr.serviceImpl.*.*(..))" />
<!-- 通过advisor来确定具体要加入事务控制的方法 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="allMethods" />
</aop:config>
<!-- 配置哪些方法要加入事务控制 -->
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<!-- 让所有的方法都加入事务管理,为了提高效率,可以把一些查询之类的方法设置为只读的事务 -->
<tx:method name="*" propagation="REQUIRED" read-only="true"/>
<!-- 以下方法都是可能设计修改的方法,就无法设置为只读 -->
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="save*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
3.下面还有最重要的一个配置就是web.xml文件的配置 (display-name以及welcome-file-list 一个是项目显示内容一个是加载的起始页 不细讲)
<!-- 创建Spring的监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
//项目完全启动之前打开的文件 加载xml文件
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/main/config/application.xml</param-value>
</context-param>
//加载srpingMVC-servlet文件
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/main/config/SpringMVC-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Spring中提供了 org.springframework.orm.hibernate3.support.OpenSessionInViewFilter;
这个类来实现OpenSessionInViewer的操作 -->
<filter>
<filter-name>openSessionInViewerFilter</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>openSessionInViewerFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
个人理解。之前的配置文件无论是怎样最后都回加载到web.xml文件中来,直接的或者是间接的。这样的话框架就已经搭建好了。启动tomcat不报错。算是初步
成功。但是如果你之前没有搭建过。我敢保证一半的人会报各种不同错误。总而言之如果报错你就细细的研究你的路径是否配置正确。很多时候路径配置不正确
框架就会报错。当然具体情况具体对待。虽然现在不报错。并不代表项目框架搭建就成功了。我将以一个简答的登录来测试一下。
首先在数据库中创建一个数据库。然后创建一张用于临时测试的用户表
-- 以后该项目所需要使用的数据库
create database EasyPlay;
-- 使用该数据库
use EasyPlay;
-- 创建一张用户表
create table user_t(id int auto_increment, loginName char(8), password char(8), primary key(id));
在myEclipse中 创建用户类 这里大家也可以不在数据库中间表。将上面提到的update换成create试试。你会发现。它通过注解自动生成了一张表。
亲测 一样的效果
user.java
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private int id;
@Column(name = "loginName", length = 8)
private String loginName;
@Column(name = "password", length = 8)
private String password;
下面是get set 方法 就不一一展示了。
接下来 我再写个controller文件验证一下 控制层是否起作用。
按道理应该从controller一直到dao层一连串的实现登录功能。但是 后期我会首先编写baseDao文件简化数据库操作。所以此处只验证controller层
。如果后期报出问题再修改配置。
下面给出 java文件 以及 jsp文件
@Controller
@RequestMapping("/user")
public class UserController {
@SuppressWarnings("unused")
@RequestMapping("/userLogin.do")
private void userLogin(@RequestParam(name = "loginName", defaultValue = "", required = true) String loginName,
@RequestParam(name = "password", defaultValue = "", required = true) String password){
String str;
if (StringUtils.isEmpty(loginName) || StringUtils.isEmpty(password)) {
str = "请将信息填写完整!";
} else if (!loginName.equals("zs")) {
str = "所填写的账号不存在!";
} else if (!password.equals("111111")) {
str = "密码填写错误!";
} else {
str = "登录成功!";
}
System.out.println(str);
}
}
jsp文件
<body>
<form method="post" action="user/userLogin.do">
账号:<input type="text" name="loginName"/><br/><br/>
密码:<input type="password" name="password"/><br/><br/>
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
</form>
</body>
百度云链接 http://pan.baidu.com/s/1pKCphXL
百度云密码 1d21
只做交流学习使用。将其放置在jquery文件夹下面。
可能你会发下报错。不用紧张只需要百度一下如何跳过验证就可以。反正我是这么处理的,对于后期的使用暂时没发现有什么影响。如果有更好的方法
可以留言评论。找到错误文件 右键选择myeclipse 然后选择 exclude from validation 从验证中排除。至于如何使用以后再介绍。
百度云链接 http://pan.baidu.com/s/1pKCphXL
百度云密码 1d21
将所有jar包放在lib文件下面。
接下来最重要的五个配置文件。
最先配置数据库连接文件 十分简单 代码就不贴了 百度一下 一大把 (要注意的是自己数据库访问的url以及驱动加载)
输入需要访问数据库的url以及数据库的登录名以及密码。然后在其他配置文件中获取该文件信息。
配置log4j打印日志 这里也十分简单,原封不动的复制上去就可以了。(这个也百度一下吧。因为这里没有什么要改动的东西)
该文件可用于在控制台打印基本信息。也可以将信息以文件的方式记载在电脑的某个位置
1.springMVC-servlet文件
//需要扫描的controller文件
<context:component-scan base-package="main.java.com.yxr.controller"/>
<mvc:annotation-driven />
<mvc:default-servlet-handler/>
//转向界面路径解析
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 需要使用导出时进行的spring配置-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8" />
<!-- 指定所上传文件的总大小不能超过10485760000B。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="10485760000" />
<property name="maxInMemorySize" value="40960" />
</bean>
2.application 文件的配置
开启注解扫描
<context:annotation-config />
<!-- 设定Spring 去哪些包中找Annotation -->
<context:component-scan base-package="main.java.com.yxr" />
//暂且理解为找到jdbc的配置文件
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
//明明我将文件放在src.main下面的config包文件下面,为什么寻找的路径却在这里 是因为项目编译之后会在web-inf下面生成
<value>/WEB-INF/classes/main/config/jdbc.properties</value>
</property>
</bean>
//这一块就是拿到jdbc文件中的一些信息
<bean id="DataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
//这一块显而易见是 包所要扫描的基类
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="DataSource"/>
<property name="packagesToScan">
<list>
<value>main.java.com.yxr.model</value>
</list>
</property>
<property name="hibernateProperties">
//所使用的sql方言 以及设置是否显示sql语句
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
//这里是比较重要的地方 个人觉得 一共有四种取值 update 不改变表结构 validate 验证表结构
//create 创建表存在则删除再创建 这样一旦表中有数据则后果不堪设想 create-drop tomcat启动时创建 tomcate关闭时销毁
//所以我在这里使用update
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.format_sql">false</prop>
</props>
</property>
</bean>
<!-- 开启HibernateTemplate,并且为其注入SessionFactory
使用HibernateTemplate不太方便的就是要获取session得通过getSessionFactory()方法获取 -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 配置Spring的事务处理 -->
<!-- 创建事务管理器-->
<bean id="txManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置AOP,Spring是通过AOP来进行事务管理的 -->
<aop:config>
<!-- 设置pointCut表示哪些方法要加入事务处理 -->
<!-- 以下的事务是声明在DAO中,但是通常都会在Service来处理多个业务对象逻辑的关系,注入删除,更新等,此时如果在执行了一个步骤之后抛出异常
就会导致数据不完整,所以事务不应该在DAO层处理,而应该在service,这也就是Spring所提供的一个非常方便的工具,声明式事务 -->
<aop:pointcut id="allMethods"
expression="execution(* main.java.com.yxr.serviceImpl.*.*(..))" />
<!-- 通过advisor来确定具体要加入事务控制的方法 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="allMethods" />
</aop:config>
<!-- 配置哪些方法要加入事务控制 -->
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<!-- 让所有的方法都加入事务管理,为了提高效率,可以把一些查询之类的方法设置为只读的事务 -->
<tx:method name="*" propagation="REQUIRED" read-only="true"/>
<!-- 以下方法都是可能设计修改的方法,就无法设置为只读 -->
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="save*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
3.下面还有最重要的一个配置就是web.xml文件的配置 (display-name以及welcome-file-list 一个是项目显示内容一个是加载的起始页 不细讲)
<!-- 创建Spring的监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
//项目完全启动之前打开的文件 加载xml文件
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/main/config/application.xml</param-value>
</context-param>
//加载srpingMVC-servlet文件
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/main/config/SpringMVC-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Spring中提供了 org.springframework.orm.hibernate3.support.OpenSessionInViewFilter;
这个类来实现OpenSessionInViewer的操作 -->
<filter>
<filter-name>openSessionInViewerFilter</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>openSessionInViewerFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
个人理解。之前的配置文件无论是怎样最后都回加载到web.xml文件中来,直接的或者是间接的。这样的话框架就已经搭建好了。启动tomcat不报错。算是初步
成功。但是如果你之前没有搭建过。我敢保证一半的人会报各种不同错误。总而言之如果报错你就细细的研究你的路径是否配置正确。很多时候路径配置不正确
框架就会报错。当然具体情况具体对待。虽然现在不报错。并不代表项目框架搭建就成功了。我将以一个简答的登录来测试一下。
首先在数据库中创建一个数据库。然后创建一张用于临时测试的用户表
-- 以后该项目所需要使用的数据库
create database EasyPlay;
-- 使用该数据库
use EasyPlay;
-- 创建一张用户表
create table user_t(id int auto_increment, loginName char(8), password char(8), primary key(id));
在myEclipse中 创建用户类 这里大家也可以不在数据库中间表。将上面提到的update换成create试试。你会发现。它通过注解自动生成了一张表。
亲测 一样的效果
user.java
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private int id;
@Column(name = "loginName", length = 8)
private String loginName;
@Column(name = "password", length = 8)
private String password;
下面是get set 方法 就不一一展示了。
接下来 我再写个controller文件验证一下 控制层是否起作用。
按道理应该从controller一直到dao层一连串的实现登录功能。但是 后期我会首先编写baseDao文件简化数据库操作。所以此处只验证controller层
。如果后期报出问题再修改配置。
下面给出 java文件 以及 jsp文件
@Controller
@RequestMapping("/user")
public class UserController {
@SuppressWarnings("unused")
@RequestMapping("/userLogin.do")
private void userLogin(@RequestParam(name = "loginName", defaultValue = "", required = true) String loginName,
@RequestParam(name = "password", defaultValue = "", required = true) String password){
String str;
if (StringUtils.isEmpty(loginName) || StringUtils.isEmpty(password)) {
str = "请将信息填写完整!";
} else if (!loginName.equals("zs")) {
str = "所填写的账号不存在!";
} else if (!password.equals("111111")) {
str = "密码填写错误!";
} else {
str = "登录成功!";
}
System.out.println(str);
}
}
jsp文件
<body>
<form method="post" action="user/userLogin.do">
账号:<input type="text" name="loginName"/><br/><br/>
密码:<input type="password" name="password"/><br/><br/>
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
</form>
</body>
亲测,运行成功。
下面是运行出来的截图偶!
百度云链接 http://pan.baidu.com/s/1pKCphXL
百度云密码 1d21
只做交流学习使用。将其放置在jquery文件夹下面。
可能你会发下报错。不用紧张只需要百度一下如何跳过验证就可以。反正我是这么处理的,对于后期的使用暂时没发现有什么影响。如果有更好的方法
可以留言评论。找到错误文件 右键选择myeclipse 然后选择 exclude from validation 从验证中排除。至于如何使用以后再介绍。