簡述
springboot對spring的的使用做了全面的封裝,使用springboot大大加快了開發進程,但是如果不了解spring的特性,使用springboot時會有不少問題
目前網上流傳使用idea比eclipse效率更加高,在搭建項目時,也嘗試使用idea,但是由于習慣問題,最終還是使用了eclipse,以后也別再折騰了,專注于開發本身更加重要
這是個簡單的springmvc項目,目的在于幫助理解spring4的springmvc的搭建,采用注解方式。項目簡單得不能再簡單,采用tomcat+spring+springmvc+h2方式搭建。項目啟動后,在訪問欄輸入訪問地址http://localhost:8080/testspringmvc/后直接訪問,利用訪問地址http://localhost:8080/testspringmvc/user/10001檢測功能是否正常運行,輸出結果是為一串json字串(java直接轉換)
文章分為3部分,項目搭建,代碼說明,以及在這過程中遇到的問題的小結
項目搭建
依次選擇file、new、spring legacy project
在彈出的對話框中選擇spring mvc項目,填寫項目其他信息
最后生成的springmvc項目的pom文件中要做些修改,因為這時生成的項目使用的是spring3,而這次的目的是練習使用spring4 (這里做個標志,以后有時間回來看看怎樣可以直接生成spring4的)
至此,項目已經生成,項目文件結構如下
代碼說明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public class testmvcinitializer extends abstractannotationconfigdispatcherservletinitializer { @override protected class <?>[] getrootconfigclasses() { return new class <?>[] { rootconfig. class }; } @override protected class <?>[] getservletconfigclasses() { return new class <?>[] { webconfig. class }; } @override protected string[] getservletmappings() { return new string[] { "/" }; } } |
spring4中通過繼承abstractannotationconfigdispatcherservletinitializer類,重寫其方法實現web項目的配置,其中getrootconfigclasses方法定義了的配置類將用于contextloaderlistener應用上下文的bean,getservletconfigclasses方法用于定義dispatcherservlet應用上下文中的bean,getservletmappings方法將dispatcherservlet映射到"/"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
@configuration @enablewebmvc @componentscan ( "com.m24.controller" ) public class webconfig extends webmvcconfigureradapter { @bean public viewresolver viewresolver() { internalresourceviewresolver resolver = new internalresourceviewresolver(); resolver.setprefix( "/web-inf/views/" ); resolver.setsuffix( ".jsp" ); return resolver; } @override public void configuredefaultservlethandling(defaultservlethandlerconfigurer configurer) { configurer.enable(); } @override public void addresourcehandlers(resourcehandlerregistry registry) { super .addresourcehandlers(registry); } } |
此處注意的是使用@enablewebmvc,是springmvc配置類
最后是業務相關配置類
1
2
3
4
5
6
7
8
9
10
11
|
@configuration @import (dataconfig. class ) @componentscan (basepackages = { "com.m24" }, excludefilters = @filter (type=filtertype.custom, value=rootconfig.webpackage. class )) public class rootconfig { public static class webpackage extends regexpatterntypefilter { public webpackage() { super (pattern.compile( "com.m24.controller" )); } } } |
由于該配置類中使用了h2數據庫,所以還需要引入h2的配置類
1
|
@import (dataconfig. class ) |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
@configuration public class dataconfig { @bean public datasource datasource() { return new embeddeddatabasebuilder() .settype(embeddeddatabasetype.h2) .addscript( "schema.sql" ) .build(); } @bean public jdbcoperations jdbctemplate(datasource datasource) { return new jdbctemplate(datasource); } } |
問題小結
1、提供數據庫插入語句時,正確的是
insert into user values(10001, 'mvc', '123456', 'm', 'vc', '[email protected]');
在開始時使用雙引號,后臺出現未識別列的的錯誤,經查找
2、使用@responsebody時,提示找不到合適的轉換器,要引入依賴
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<dependency> <groupid>com.fasterxml.jackson.core</groupid> <artifactid>jackson-core</artifactid> <version> 2.5 . 0 </version> </dependency> <dependency> <groupid>com.fasterxml.jackson.core</groupid> <artifactid>jackson-annotations</artifactid> <version> 2.5 . 0 </version> </dependency> <dependency> <groupid>com.fasterxml.jackson.core</groupid> <artifactid>jackson-databind</artifactid> <version> 2.5 . 0 </version> </dependency> |
3、由于使用注解方式,沒有web.xml文件,項目報錯,缺失web.xml文件,pom文件中添加
1
2
3
4
5
6
7
8
|
<plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-war-plugin</artifactid> <version> 2.6 </version> <configuration> <failonmissingwebxml> false </failonmissingwebxml> </configuration> </plugin> |
4、定義java版本
1
2
3
4
5
6
7
8
9
10
|
<!-- define the project compile level --> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-compiler-plugin</artifactid> <version> 2.3 . 2 </version> <configuration> <source> 1.8 </source> <target> 1.8 </target> </configuration> </plugin> |
5、指定項目名
1
|
<finalname>testspringmvc</finalname> |
代碼地址:https://github.com/m2492565210/testspringmvc
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:http://www.cnblogs.com/m2492565210/p/8328070.html