最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解如何全注解方式構(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à)值,需要的朋友可以參考下

簡述

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

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

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

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

項(xiàng)目搭建

依次選擇File、New、Spring Legacy Project

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

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

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

代碼說明

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類,重寫其方法實(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ù)庫,所以還需要引入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);
  }
}

問題小結(jié)

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

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

在開始時(shí)使用雙引號,后臺出現(xiàn)未識別列的的錯(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

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

相關(guān)文章

  • Java 中 getClass() 方法的使用與原理深入分析(對象類型信息)

    Java 中 getClass() 方法的使用與原理深入分析(對象類型信息)

    在 Java 編程中,getClass() 是一個(gè)非常重要的方法,它用于獲取對象的運(yùn)行時(shí)類信息,無論是調(diào)試代碼、反射操作,還是類型檢查,getClass() 都扮演著關(guān)鍵角色,本文將深入探討 getClass() 的使用方法、底層原理以及實(shí)際應(yīng)用場景,感興趣的朋友一起看看吧
    2024-12-12
  • spring6+JDK17實(shí)現(xiàn)SSM起步配置文件

    spring6+JDK17實(shí)現(xiàn)SSM起步配置文件

    本文介紹了使用Spring6和JDK17配置SSM(Spring + Spring MVC + MyBatis)框架,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Spring 應(yīng)用中集成 Apache Shiro的方法

    Spring 應(yīng)用中集成 Apache Shiro的方法

    這篇文章主要介紹了Spring 應(yīng)用中集成 Apache Shiro的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • java多線程之停止線程的方法實(shí)例代碼詳解

    java多線程之停止線程的方法實(shí)例代碼詳解

    這篇文章主要介紹了java多線程之停止線程的方法實(shí)例代碼詳解,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • JAVA對稱加密算法PBE定義與用法實(shí)例分析

    JAVA對稱加密算法PBE定義與用法實(shí)例分析

    這篇文章主要介紹了JAVA對稱加密算法PBE定義與用法,結(jié)合實(shí)例形式分析了JAVA對稱加密算法PBE的概念、原理、定義及使用方法,需要的朋友可以參考下
    2019-09-09
  • JAVA獲得包含0-9、a-z、A-Z范圍內(nèi)字符串的的隨機(jī)數(shù)實(shí)例

    JAVA獲得包含0-9、a-z、A-Z范圍內(nèi)字符串的的隨機(jī)數(shù)實(shí)例

    這篇文章主要介紹了JAVA獲得包含0-9、a-z、A-Z范圍內(nèi)字符串的的隨機(jī)數(shù)實(shí)例,包含隨機(jī)數(shù)字、隨機(jī)字符串的獲取方法,需要的朋友可以參考下
    2014-07-07
  • IDEA項(xiàng)目如何實(shí)現(xiàn)打jar包

    IDEA項(xiàng)目如何實(shí)現(xiàn)打jar包

    這篇文章主要介紹了IDEA項(xiàng)目如何實(shí)現(xiàn)打jar包問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 深入分析JAVA流程控制語句

    深入分析JAVA流程控制語句

    這篇文章主要介紹了JAVA流程控制語句的的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • Java 使用Calendar計(jì)算時(shí)間的示例代碼

    Java 使用Calendar計(jì)算時(shí)間的示例代碼

    這篇文章主要介紹了Java 使用Calendar計(jì)算時(shí)間的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • springboot?aop配合反射統(tǒng)一簽名驗(yàn)證實(shí)踐

    springboot?aop配合反射統(tǒng)一簽名驗(yàn)證實(shí)踐

    這篇文章主要介紹了springboot?aop配合反射統(tǒng)一簽名驗(yàn)證實(shí)踐,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12

最新評論

宁化县| 方正县| 临清市| 重庆市| 彰化市| 北流市| 志丹县| 通化市| 长丰县| 嘉黎县| 太谷县| 潍坊市| 霍山县| 郓城县| 仙游县| 来安县| 灌云县| 万年县| 宁国市| 海门市| 黔江区| 鄱阳县| 漠河县| 建平县| 贡山| 布尔津县| 始兴县| 遂平县| 微山县| 常宁市| 洪湖市| 邯郸市| 新晃| 台中市| 礼泉县| 古蔺县| 辰溪县| 平乡县| 宁津县| 天峻县| 平湖市|