这篇文章主要介绍了怎么全注解方式构建SpringMVC项目,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
成都创新互联公司是一家集网站建设,开封企业网站建设,开封品牌网站建设,网站定制,开封网站建设报价,网络营销,网络优化,开封网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
SpringBoot对Spring的的使用做了全面的封装,使用SpringBoot大大加快了开发进程,但是如果不了解Spring的特性,使用SpringBoot时会有不少问题
目前网上流传使用IDEA比Eclipse效率更加高,在搭建项目时,也尝试使用IDEA,但是由于习惯问题,最终还是使用了Eclipse,以后也别再折腾了,专注于开发本身更加重要
这是个简单的SpringMVC项目,目的在于帮助理解Spring4的SpringMVC的搭建,采用注解方式。项目简单得不能再简单,采用tomcat+spring+springmvc+h3方式搭建。项目启动后,在访问栏输入访问地址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的)
至此,项目已经生成,项目文件结构如下
代码说明
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映射到"/"
@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配置类
最后是业务相关配置类
@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的配置类
@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); } }
问题小结
1、提供数据库插入语句时,正确的是
insert into User values(10001, 'mvc', '123456', 'm', 'vc', 'mvc@m24.com');
在开始时使用双引号,后台出现未识别列的的错误,经查找
2、使用@ResponseBody时,提示找不到合适的转换器,要引入依赖
com.fasterxml.jackson.core jackson-core 2.5.0 com.fasterxml.jackson.core jackson-annotations 2.5.0 com.fasterxml.jackson.core jackson-databind 2.5.0
3、由于使用注解方式,没有web.xml文件,项目报错,缺失web.xml文件,pom文件中添加
org.apache.maven.plugins maven-war-plugin 2.6 false
4、定义java版本
org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.8
5、指定项目名
testspringmvc
感谢你能够认真阅读完这篇文章,希望小编分享的“怎么全注解方式构建SpringMVC项目”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!