首页 > 代码库 > java spring mvc 全注解

java spring mvc 全注解

           本人苦逼学生一枚,马上就要毕业,面临找工作,实在是不想离开学校.在老师的教导下学习了spring mvc ,配置文件实在繁琐,因此网上百度学习了spring mvc 全注解方式完成spring的装配工作;

废话不多说了上干货,其实我也没怎么理解不过简单的运行了一个spring mvc 全注解项目,也不能说是全注解,因为保留了web.xml和spring-serlvet.xml文件,(可能有的童鞋会说,这样配置可能对以后的修改不方便,无法达到只修改配置文件就切换某些环境。其实不是,零配置文件只是修改了类定义的配置,并没有修改之前配置文件的灵活性。我想无论谁也不会在之前的web.xml中去修改某个servlet的配置吧。况且这些所谓的配置文件灵活性,只是针对某个值,我们可以写在我们的properties文件里面,而且Spring对这类配置文件有很好的支持,而且使用很方便,有兴趣的童鞋可以去search一下。所以请打消这个配置不灵活的念头)。

 首先我们看一下项目结构

          技术分享

项目采用maven管理,入门的同学应该都知道maven的优点,可以学习一下.

下面看一下核心的配置java类

 1 package cn.edu.lhs.config;
 2 import org.springframework.context.annotation.Bean;
 3 import org.springframework.context.annotation.ComponentScan;
 4 import org.springframework.context.annotation.Configuration;
 5 import org.springframework.web.servlet.config.annotation.EnableWebMvc;
 6 import org.springframework.web.servlet.view.JstlView;
 7 import org.springframework.web.servlet.view.UrlBasedViewResolver;
 8 
 9 @Configuration
10 @ComponentScan("cn.edu.lhs")
11 @EnableWebMvc
12 public class webConfig {
13     /**
14      * jsp视图解析器
15     */
16     @Bean
17     public UrlBasedViewResolver setupviewResolver(){
18         UrlBasedViewResolver resilver=new UrlBasedViewResolver();
19          resilver.setPrefix("WEB-INF/views/");
20          resilver.setSuffix(".jsp");
21          resilver.setViewClass(JstlView.class);
22          return resilver;
23         
24         
25     }
26 }

以上代码为配置spring-mvc.xml下的jsp视图解析的

让后就是去web.xml

package cn.edu.lhs.config;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration.Dynamic;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
@ComponentScan("cn.edu.lhs")
public class webInitalizer implements WebApplicationInitializer {
	public void onStartup(ServletContext servletContext)throws ServletException{
		AnnotationConfigWebApplicationContext ctx=new AnnotationConfigWebApplicationContext();
		ctx.register(webConfig.class);
		ctx.setServletContext(servletContext);
		Dynamic servlet=servletContext.addServlet("dispatcher", new DispatcherServlet(ctx));
		servlet.addMapping("/");
		servlet.setLoadOnStartup(1);
		
	}

}

 这里以webApplicationINitializer接口,利用AnnotationCOnfigwebApplicationCOntext 类

寄存器

public void register(Class <?> ... annotatedClasses)
注册要处理的一个或多个注释类。

请注意,AbstractApplicationContext.refresh()为了使上下文完全处理新类必须调用它们。

指定者:
register 在界面 AnnotationConfigRegistry
参数:
annotatedClasses- 一个或多个注释类,例如@Configuration
也可以看看:
scan(String...) loadBeanDefinitions(DefaultListableBeanFactory)AbstractRefreshableConfigApplicationContext.setConfigLocation(String) AbstractApplicationContext.refresh()

注册配置类

现在就可以删除web.xml里的东西了

项目代码:https://github.com/tsxylhs/spring-mvc

java spring mvc 全注解