免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
spring4.3
寫在前面的話:

現(xiàn)在是北京時間2016年11月2日凌晨1點10分18秒,我在這里寫下這篇博客,希望能幫到有需要的朋友,由于個人水平有限,有不正確的地方還請各位多多指教,不甚感激!


前期工作準備

1、軟件準備

JDK:1.7

IDE:Eclipse mars

Spring:4.3.0

Spring Mvc:4.3.0

MyBatis:3.4.0

數(shù)據(jù)庫:mysql-5.6.24

2、硬件準備:

本尊(全球限量一個,產地:貴州凱里,當前版本:23.0,型號:男),華碩筆記本一臺,好視力臺燈一臺,椅子一張。


正式開始配置

本來想一邊講解配置過程,一邊創(chuàng)建目錄,但是這樣感覺不是很清晰,所以我干脆先把工程結構貼出來,方便大家對整個項目的結構有個大概了解,小小的運用了先全局后部分的哲學思想,哈哈??矗@就是我們要完成的工程圖

看著好復雜的樣子,不過不要害怕,作為一名合格的程序員就應該有跟bug革命到底的精神,下面我們來開始配置項目。


1.配置數(shù)據(jù)庫

右鍵項目新建一個config源文件夾,用來存放我們的各種配置文件。然后在config下新建文件jdbc.properties,這個文件用來配置數(shù)據(jù)庫信息,內容如下:

  1. #MySql 數(shù)據(jù)庫驅動  
  2. jdbc.driver=com.mysql.jdbc.Driver  
  3. #jdbc:mysql://連接地址:端口號(默認3306)/數(shù)據(jù)庫名  
  4. jdbc.url=jdbc:mysql://127.0.0.1:3306/spring  
  5. #用戶名  
  6. jdbc.username=root  
  7. #密碼  
  8. jdbc.password=123456  
  9. #連接池初始化連接  
  10. jdbc.initialSize=0  
  11. #連接池最大連接數(shù)  
  12. jdbc.maxActive=20  
  13. #連接池最大空閑連接  
  14. jdbc.maxIdle=20  
  15. #連接池最小空閑連接  
  16. jdbc.minIdle=1  
  17. #等待超時  
  18. jdbc.maxWait=60000</span>  

代碼都有注釋,不再累述。

2.配置日志log4j

在項目下新建文件夾logs,日志文件將往這里面寫;同樣在config下新建文件log4j.properties,里面是關于日志的一些配置,內容如下:

  1. #定義LOG輸出級別  
  2. log4j.rootLogger=INFO,Console,File  
  3. #定義日志輸出目的地為控制臺  
  4. log4j.appender.Console=org.apache.log4j.ConsoleAppender  
  5. log4j.appender.Console.Target=System.out  
  6. #可以靈活地指定日志輸出格式,下面一行是指定具體的格式  
  7. log4j.appender.Console.layout = org.apache.log4j.PatternLayout  
  8. log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n  
  9.   
  10. #文件大小到達指定尺寸的時候產生一個新的文件  
  11. log4j.appender.File = org.apache.log4j.RollingFileAppender  
  12. #指定輸出目錄  
  13. log4j.appender.File.File = logs/ssm.log  
  14. #定義文件最大大小  
  15. log4j.appender.File.MaxFileSize = 10MB  
  16. # 輸出所以日志,如果換成DEBUG表示輸出DEBUG以上級別日志  
  17. log4j.appender.File.Threshold = ALL  
  18. log4j.appender.File.layout = org.apache.log4j.PatternLayout  
  19. log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n</span>  

3.spring與mybatis的結合(主角登場,鼓掌)

在config目錄下新建一個xml文件,命名為spring-mybatis.xml,內容如下

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"    
  3.     xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util" xmlns:jdbc="http://www.springframework.org/schema/jdbc"    
  4.     xmlns:cache="http://www.springframework.org/schema/cache"    
  5.     xsi:schemaLocation="    
  6.     http://www.springframework.org/schema/context    
  7.     http://www.springframework.org/schema/context/spring-context.xsd    
  8.     http://www.springframework.org/schema/beans    
  9.     http://www.springframework.org/schema/beans/spring-beans.xsd    
  10.     http://www.springframework.org/schema/tx    
  11.     http://www.springframework.org/schema/tx/spring-tx.xsd    
  12.     http://www.springframework.org/schema/jdbc    
  13.     http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd    
  14.     http://www.springframework.org/schema/aop    
  15.     http://www.springframework.org/schema/aop/spring-aop.xsd  
  16.     http://www.springframework.org/schema/mvc    
  17.     http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">   
  18.       
  19.     <!-- 自動掃描 -->  
  20.     <context:component-scan base-package="com.pyx" />  
  21.     <!-- 引入配置文件 -->  
  22.     <bean id="propertyConfigurer"  
  23.         class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
  24.         <property name="location" value="classpath:jdbc.properties" />  
  25.     </bean>  
  26.   
  27.     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  
  28.         destroy-method="close">  
  29.         <property name="driverClassName" value="${jdbc.driver}" />  
  30.         <property name="url" value="${jdbc.url}" />  
  31.         <property name="username" value="${jdbc.username}" />  
  32.         <property name="password" value="${jdbc.password}" />  
  33.         <!-- 初始化連接大小 -->  
  34.         <property name="initialSize" value="${jdbc.initialSize}"></property>  
  35.         <!-- 連接池最大數(shù)量 -->  
  36.         <property name="maxActive" value="${jdbc.maxActive}"></property>  
  37.         <!-- 連接池最大空閑 -->  
  38.         <property name="maxIdle" value="${jdbc.maxIdle}"></property>  
  39.         <!-- 連接池最小空閑 -->  
  40.         <property name="minIdle" value="${jdbc.minIdle}"></property>  
  41.         <!-- 獲取連接最大等待時間 -->  
  42.         <property name="maxWait" value="${jdbc.maxWait}"></property>  
  43.     </bean>  
  44.   
  45.     <!-- 配置spring與mybatis結合 -->  
  46.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  47.         <property name="dataSource" ref="dataSource" />  
  48.         <!-- 自動掃描mapping.xml文件 -->  
  49.         <property name="mapperLocations" value="classpath:com/pyx/mapper/*.xml"></property>  
  50.     </bean>  
  51.   
  52.     <!-- DAO接口所在包名,Spring會自動查找其下的類 -->  
  53.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
  54.         <property name="basePackage" value="com.pyx.dao" />  
  55.         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>  
  56.     </bean>  
  57.   
  58.     <!-- (事務管理)transaction manager, use JtaTransactionManager for global tx -->  
  59.     <bean id="transactionManager"  
  60.         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  61.         <property name="dataSource" ref="dataSource" />  
  62.     </bean>  
  63.     <!-- 這個必須配置,否則事物不起作用 -->  
  64.     <tx:annotation-driven transaction-manager="transactionManager"/>  
  65. </beans>  

為了測試,只配置了最基本的功能,你可以根據(jù)自己的項目需求進行配置。

4.測試spring與mybatis的整合

在src源文件夾下新建以下包


看文件名應該能猜出個大概,這些包類有哪些功能,你應該明白,如果不明白,建議你還是再學學框架吧。

在數(shù)據(jù)庫新建一張user表用于測試,我的表結構如下:

表建好后根據(jù)你的表字段就可以編寫dao,mapper和Pojo了,這里介紹一個自動生成mybatis mapper的jar,參考下面的博文:

SSM框架——使用MyBatis Generator自動創(chuàng)建代碼

新手不建議使用,還是自己手寫比較好,把生成的文件復制到項目中,然后開始編寫測試代碼。新建test源文件夾,編寫一個測試類。


  1. package com.pyx.test;  
  2.   
  3. import javax.annotation.Resource;  
  4.   
  5. import org.junit.Test;  
  6. import org.junit.runner.RunWith;  
  7. import org.springframework.test.context.ContextConfiguration;  
  8. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  
  9.   
  10. import com.pyx.pojo.User;  
  11. import com.pyx.service.UserService;  
  12.   
  13. @RunWith(SpringJUnit4ClassRunner.class)       
  14. @ContextConfiguration(locations = {"classpath:spring-mybatis.xml"})  
  15.   
  16. public class TestMyBatis {  
  17.   
  18.     @Resource  
  19.     private UserService userService = null;  
  20.   
  21.   
  22.     @Test  
  23.     public void mytest() {  
  24.         User user = userService.getUserById(1);  
  25.          System.out.println("查詢結果:"+user.getUsername());  
  26.     }  
  27. }  

這里有幾點要注意:

1,因為用了JUnit4插件測試,所以務必確認你的項目中已經加入JUnit4類庫,否則會報找不到mytest方法的錯誤。

2,    <!-- spring和MyBatis的整合配置 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!-- 自動掃描mapping.xml文件 -->
        <property name="mapperLocations" value="classpath:com/pyx/mapper/*.xml"></property>
    </bean>

這里的mapperLocations一定要寫對,我就是因為mapper后面少了一個“/”,所以一直在報找補到mapper方法的錯誤,還有如果你是用自動生成工具生成的代碼,那請你一定要留意mapper文件中的包名是否正確,其他兩個pojo和dao如果包名不對會立即顯示錯誤的,但是mapper就不會,所以如果tomcat啟動異常,一定要查看這個文件。

接下來開始測試,選擇mytest方法右鍵調試方式->JUnit4測試,如果控制臺輸出如下結果,表示spring與mybatis已經整合成功,如果報錯,根據(jù)bug信息慢慢調試吧。

5.整合spring mvc

config下新建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.     <!-- 自動掃描該包,使SpringMVC認為包下用了@controller注解的類是控制器 -->  
  13.     <context:component-scan base-package="com.pyx.controller" />  
  14.     <!-- 啟動SpringMVC的注解功能,完成請求和注解POJO的映射 -->  
  15.     <bean  
  16.         class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  
  17.     </bean>  
  18.     <!-- 定義跳轉的文件的前后綴 ,視圖模式配置-->  
  19.     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  20.         <property name="prefix" value="/WEB-INF/jsp/" />  
  21.         <property name="suffix" value=".jsp" />  
  22.     </bean>  
  23.       
  24.     <!-- 配置返回Json數(shù)據(jù) -->  
  25.     <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">  
  26.         <property name="messageConverters">  
  27.             <list>  
  28.                 <ref bean="mappingJacksonHttpMessageConverter"/>  
  29.             </list>  
  30.         </property>  
  31.     </bean>  
  32.     <bean id="mappingJacksonHttpMessageConverter"  
  33.         class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">  
  34.         <property name="supportedMediaTypes">  
  35.             <list>  
  36.                 <value>text/html;charset=UTF-8</value>  
  37.             </list>  
  38.         </property>  
  39.     </bean>  
  40.     <!-- 特別重要,不配置該項,使用ajax請求時會報406錯誤 -->  
  41.     <mvc:annotation-driven></mvc:annotation-driven>  
  42.       
  43.       
  44. </beans>  

配置web.xml
  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.     <display-name>Spring Mybatis</display-name>  
  7.     <!-- 加載Spring和mybatis的配置文件 -->  
  8.     <context-param>  
  9.         <param-name>contextConfigLocation</param-name>  
  10.         <param-value>classpath:spring-mybatis.xml</param-value>  
  11.     </context-param>  
  12.     <!-- 編碼過濾器 -->  
  13.     <filter>  
  14.         <filter-name>encodingFilter</filter-name>  
  15.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  16.         <async-supported>true</async-supported>  
  17.         <init-param>  
  18.             <param-name>encoding</param-name>  
  19.             <param-value>UTF-8</param-value>  
  20.         </init-param>  
  21.     </filter>  
  22.     <filter-mapping>  
  23.         <filter-name>encodingFilter</filter-name>  
  24.         <url-pattern>/*</url-pattern>  
  25.     </filter-mapping>  
  26.     <!-- Spring監(jiān)聽器 -->  
  27.     <listener>  
  28.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  29.     </listener>  
  30.   
  31.     <!-- Spring MVC servlet -->  
  32.     <servlet>  
  33.         <servlet-name>SpringMVC</servlet-name>  
  34.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  35.         <init-param>  
  36.             <param-name>contextConfigLocation</param-name>  
  37.             <param-value>classpath:spring-mvc.xml</param-value>  
  38.         </init-param>  
  39.         <load-on-startup>1</load-on-startup>  
  40.         <async-supported>true</async-supported>  
  41.     </servlet>  
  42.     <servlet-mapping>  
  43.         <servlet-name>SpringMVC</servlet-name>  
  44.         <url-pattern>/</url-pattern>  
  45.     </servlet-mapping>  
  46.       
  47.     <!-- 配置過濾靜態(tài)文件,如js,css,image等,方法不止這一種,自己百度有很多其他更好的方法 -->  
  48.     <servlet-mapping>  
  49.         <servlet-name>default</servlet-name>  
  50.         <url-pattern>/static/*</url-pattern>  
  51.     </servlet-mapping>  
  52.       
  53.     <welcome-file-list>  
  54.         <welcome-file>/index.jsp</welcome-file>  
  55.     </welcome-file-list>  
  56.       
  57. </web-app>  

在controller包下建一個控制器,就叫UserController吧,內容如下
  1. package com.pyx.controller;  
  2.   
  3. import java.util.Date;  
  4.   
  5. import javax.annotation.Resource;  
  6. import javax.servlet.http.HttpServletRequest;  
  7.   
  8. import org.springframework.stereotype.Controller;  
  9. import org.springframework.ui.Model;  
  10. import org.springframework.web.bind.annotation.RequestMapping;  
  11. import org.springframework.web.bind.annotation.RequestMethod;  
  12. import org.springframework.web.bind.annotation.ResponseBody;  
  13.   
  14. import com.pyx.pojo.User;  
  15. import com.pyx.service.UserService;  
  16.   
  17. @Controller  
  18. @RequestMapping("/user")  
  19. public class UserController {  
  20.   
  21.     @Resource  
  22.     private UserService userService;  
  23.       
  24.       
  25.     //查詢用戶  
  26.     @RequestMapping("/list")  
  27.     public String list(HttpServletRequest request,Model model){  
  28.         int userId = Integer.parseInt(request.getParameter("id"));  
  29.         User user = this.userService.getUserById(userId);  
  30.         model.addAttribute("user", user);  
  31.         return "user";  
  32.     }  
  33.       
  34.     //更新用戶  
  35.     @RequestMapping("/update")  
  36.     public String update(HttpServletRequest request,Model model){  
  37.         int userId = Integer.parseInt(request.getParameter("id"));  
  38.         User user = new User();  
  39.         user.setSid(userId);  
  40.         user.setUsername("隔壁老王");  
  41.         user.setPassword("258258");  
  42.         int status = this.userService.updateUserById(user);  
  43.         model.addAttribute("msg", status);  
  44.         return "ok";  
  45.     }  
  46.       
  47.     //添加用戶  
  48.     @RequestMapping("/add")  
  49.     public String addUser(HttpServletRequest request,Model model) {  
  50.         User user = new User();  
  51.         //SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yy-mm-dd");  
  52.         Date birth=null;  
  53.         user.setUsername("panyx");  
  54.         user.setPassword("258258");  
  55.         user.setBirth(birth);  
  56.         user.setEmail("ape010@163.com");  
  57.         user.setSex("女");  
  58.         int status = this.userService.insertUser(user);  
  59.         model.addAttribute("msg", status);  
  60.         return "add-ok";  
  61.           
  62.     }  
  63.       
  64.     //ajax測試頁面  
  65.     @RequestMapping("/test")  
  66.     public String mytest(Model model){  
  67.         return "test";  
  68.     }  
  69.       
  70.     //測試ajax請求,返回json數(shù)據(jù)  
  71.     @RequestMapping(value="jsontest", method=RequestMethod.POST)  
  72.     @ResponseBody  
  73.     public User jsonTest(Model model){  
  74.         User user = this.userService.getUserById(1);  
  75.         return user;  
  76.     }  
  77. }  
/WEB-INF/jsp,新建一個user.jsp測試頁面
  1. <%@ page language="java" contentType="text/html; charset=utf-8"  
  2.     pageEncoding="utf-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  7. <title>測試</title>  
  8. </head>  
  9. <body>  
  10.     ${user.username}  
  11. </body>  
  12. </html>  


6.測試spring mvc

啟動tomcat,瀏覽器輸入http://localhost:8080/你的項目名/user/list?id=1

如果能出現(xiàn)上圖的效果就說明我們的框架整合完美結束了,但在實際開發(fā)中,肯定會用到ajax,那我們就再配置一下ajax吧,其實在spring-mvc.xml中我們已經做了返回json數(shù)據(jù)的配置,只要把jackson.jar包引進去就可以了。我們再寫一個測試頁面,用來測試ajax,test.jsp

  1. <%@ page language="java" contentType="text/html; charset=utf-8"  
  2.     pageEncoding="utf-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  7. <title>ajax測試</title>  
  8. <script src="${pageContext.request.contextPath}/static/js/jquery.min.js"></script>  
  9. </head>  
  10. <body>  
  11.      <p>  
  12.     <button id="testbtn" class="" >找老王</button>  
  13.  </p>  
  14.  <script>  
  15.     $(function(){  
  16.         $("#testbtn").bind("click",function(){  
  17.             $.ajax({  
  18.                 url:"http://localhost:8080/myspring/user/jsontest",  
  19.                 type:"post",  
  20.                 async:true,  
  21.                 data:{},  
  22.                 dataType:"json",  
  23.                 success:function(data){  
  24.                     console.log(data);  
  25.                 }  
  26.                   
  27.             })  
  28.         });  
  29.     })  
  30.  </script>  
  31. </body>  
  32. </html>  

方法在UserController中都已經寫好了,在瀏覽器中輸入:http://localhost:8080/myspring/user/test,



到此,spring,spring-mvc,mybatis完美的融合在了一起!



特別感謝:

參考了博主shu_lin的文章,SSM框架——詳細整合教程(Spring+SpringMVC+MyBatis)

SSM框架——使用MyBatis Generator自動創(chuàng)建代碼


工程所需jar包下載:spring-4.3.0和mybatis-3.4整合所需jar包

提取碼:vsk7


本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Java框架搭建
spring 3.1 context:property
xml、schema、xsd
ssh 中使用c3p0 的連接池配置
SpringMVC攔截器簡單使用
SpringMvc自動任務調度之task實現(xiàn)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服