亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解如何全注解方式構(gòu)建SpringMVC項(xiàng)目

 更新時(shí)間:2018年10月20日 11:56:43   作者:m2492565210  
這篇文章主要介紹了詳解如何全注解方式構(gòu)建SpringMVC項(xiàng)目,利用Eclipse構(gòu)建SpringMVC項(xiàng)目,非常具有實(shí)用價(jià)值,需要的朋友可以參考下

簡(jiǎn)述

SpringBoot對(duì)Spring的的使用做了全面的封裝,使用SpringBoot大大加快了開發(fā)進(jìn)程,但是如果不了解Spring的特性,使用SpringBoot時(shí)會(huì)有不少問(wèn)題

目前網(wǎng)上流傳使用IDEA比Eclipse效率更加高,在搭建項(xiàng)目時(shí),也嘗試使用IDEA,但是由于習(xí)慣問(wèn)題,最終還是使用了Eclipse,以后也別再折騰了,專注于開發(fā)本身更加重要

這是個(gè)簡(jiǎn)單的SpringMVC項(xiàng)目,目的在于幫助理解Spring4的SpringMVC的搭建,采用注解方式。項(xiàng)目簡(jiǎn)單得不能再簡(jiǎn)單,采用tomcat+spring+springmvc+h2方式搭建。項(xiàng)目啟動(dòng)后,在訪問(wèn)欄輸入訪問(wèn)地址http://localhost:8080/testspringmvc/后直接訪問(wèn),利用訪問(wèn)地址http://localhost:8080/testspringmvc/user/10001檢測(cè)功能是否正常運(yùn)行,輸出結(jié)果是為一串JSON字串(java直接轉(zhuǎn)換)

文章分為3部分,項(xiàng)目搭建,代碼說(shuō)明,以及在這過(guò)程中遇到的問(wèn)題的小結(jié)

項(xiàng)目搭建

依次選擇File、New、Spring Legacy Project

在彈出的對(duì)話框中選擇Spring MVC項(xiàng)目,填寫項(xiàng)目其他信息

最后生成的SpringMVC項(xiàng)目的POM文件中要做些修改,因?yàn)檫@時(shí)生成的項(xiàng)目使用的是Spring3,而這次的目的是練習(xí)使用Spring4 (這里做個(gè)標(biāo)志,以后有時(shí)間回來(lái)看看怎樣可以直接生成Spring4的)

至此,項(xiàng)目已經(jīng)生成,項(xiàng)目文件結(jié)構(gòu)如下

代碼說(shuō)明

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中通過(guò)繼承AbstractAnnotationConfigDispatcherServletInitializer類,重寫其方法實(shí)現(xiàn)web項(xiàng)目的配置,其中g(shù)etRootConfigClasses方法定義了的配置類將用于ContextLoaderListener應(yīng)用上下文的bean,getServletConfigClasses方法用于定義DispatcherServlet應(yīng)用上下文中的bean,getServletMappings方法將DispatcherServlet映射到"/"

@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配置類

最后是業(yè)務(wù)相關(guān)配置類

@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數(shù)據(jù)庫(kù),所以還需要引入H2的配置類

@Import(DataConfig.class)
@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);
  }
}

問(wèn)題小結(jié)

1、提供數(shù)據(jù)庫(kù)插入語(yǔ)句時(shí),正確的是

insert into User values(10001, 'mvc', '123456', 'm', 'vc', 'mvc@m24.com');

在開始時(shí)使用雙引號(hào),后臺(tái)出現(xiàn)未識(shí)別列的的錯(cuò)誤,經(jīng)查找

2、使用@ResponseBody時(shí),提示找不到合適的轉(zhuǎn)換器,要引入依賴

 <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文件,項(xiàng)目報(bào)錯(cuò),缺失web.xml文件,pom文件中添加

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
</plugin>

4、定義java版本

<!-- 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、指定項(xiàng)目名

<finalName>testspringmvc</finalName>

代碼地址:https://github.com/m2492565210/testspringmvc

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java 進(jìn)程是如何在Linux服務(wù)器上進(jìn)行內(nèi)存分配的

    java 進(jìn)程是如何在Linux服務(wù)器上進(jìn)行內(nèi)存分配的

    這篇文章主要介紹了java 進(jìn)程是如何在Linux服務(wù)器上進(jìn)行內(nèi)存分配的,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-11-11
  • Java 中的抽象介紹

    Java 中的抽象介紹

    這篇文章主要介紹了Java 中的抽象,數(shù)據(jù)抽象是一種僅向用戶顯示基本細(xì)節(jié)的屬性。不向用戶顯示瑣碎或非必需的單元,下面文章Java抽象詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-12-12
  • Java BIO,NIO,AIO總結(jié)

    Java BIO,NIO,AIO總結(jié)

    這篇文章主要介紹了Java BIO,NIO,AIO的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-09-09
  • jvm運(yùn)行原理以及類加載器實(shí)例詳解

    jvm運(yùn)行原理以及類加載器實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于jvm運(yùn)行原理以及類加載器的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 編輯器Ueditor和SpringBoot 的整合方法

    編輯器Ueditor和SpringBoot 的整合方法

    本文通過(guò)實(shí)例代碼給大家介紹了編輯器Ueditor和SpringBoot 的整合方法,需要的朋友參考下吧
    2017-08-08
  • java在原字符中插入新字符或字符串實(shí)例

    java在原字符中插入新字符或字符串實(shí)例

    這篇文章主要介紹了java在原字符中插入新字符或字符串實(shí)例,具有很好的價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Springboot實(shí)現(xiàn)Java郵件任務(wù)過(guò)程解析

    Springboot實(shí)現(xiàn)Java郵件任務(wù)過(guò)程解析

    這篇文章主要介紹了Springboot實(shí)現(xiàn)Java郵件任務(wù)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Java獲取網(wǎng)頁(yè)數(shù)據(jù)步驟方法詳解

    Java獲取網(wǎng)頁(yè)數(shù)據(jù)步驟方法詳解

    這篇文章主要介紹了Java獲取網(wǎng)頁(yè)數(shù)據(jù)步驟方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 帶你重新認(rèn)識(shí)Java動(dòng)態(tài)代理

    帶你重新認(rèn)識(shí)Java動(dòng)態(tài)代理

    這篇文章主要為大家介紹了Java的動(dòng)態(tài)代理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-11-11
  • 使用Logback日志保存到相對(duì)路徑的操作

    使用Logback日志保存到相對(duì)路徑的操作

    這篇文章主要介紹了使用Logback日志保存到相對(duì)路徑的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11

最新評(píng)論