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

时间: 2025-01-02 17:14:33

java spring mvc 全注解的相关文章

Spring MVC全注解配置 - 无web.xml

Serlvet 3以后,我们可以使用注解来配置Servlet,对于像Spring这类的框架来说是一个很好的适应.Spring也对此特性加入了很多的新功能.本文就将简单的对之前的xml配置转换为java代码的配置.代码配置让程序员们觉得更加具有流程化,不像配置很多代码程序员们都不愿意look into. 接下来,进行替换我们之前的web.xml和spring-mvc.xml的配置.也就是在你的web工程里面看不到这两个配置文件了.(可能有的童鞋会说,这样配置可能对以后的修改不方便,无法达到只修改配

springmvc3.2+spring+hibernate4全注解方式整合(一)

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.

spring mvc 方法注解拦截器

应用场景,在方法级别对本次调用进行鉴权,如api接口中有个用户唯一标示accessToken,对于有accessToken的每次请求可以在方法加一个拦截器,获得本次请求的用户,存放到request或者session域. python中,之前在python flask中可以使用装饰器来对方法进行预处理,进行权限处理 先看一个实例,使用@access_required拦截: @api.route('/post_apply') @access_required def apply():     "&q

基于spring mvc的注解DEMO完整例子

弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件.本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,现在这一篇补上.下面开始贴代码. 文中用的框架版本:spring 3,hibernate 3,没有的,自己上网下. web.xml配置: <?xml version="1.0" encoding="UTF-8"?> 

springmvc3.2+spring+hibernate4全注解方式整合(四)

以上是工程文件,下面开始测试 package test.testservice; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.t

springmvc3.2+spring+hibernate4全注解方式整合(三)

service接口 package com.fangjian.core.platform.service; import com.fangjian.core.platform.po.User; public interface UserService { void saveUser(User user); } service实现 package com.fangjian.core.platform.service.impl; import org.springframework.beans.fa

springmvc3.2+spring+hibernate4全注解方式整合(二)

jdbc.properties #hibernate settings hibernate.show_sql=true hibernate.format_sql=true hibernate.cache.use_query_cache=true hibernate.cache.provider_class=net.sf.ehcache.hibernate.SingletonEhCacheProvider #mysql version database setting jdbc.driver=co

支持Java Spring MVC

Java Spring MVC能很方便在后台返回JSON数据,所以与MiniUI进行数据交互非常简单. 1)后台处理: 在MVC控制器中,可以通过方法参数接收数据,也可以通过Request接收更复杂的数据对象: 然后将任何服务端对象JSON序列化后返回. 比如一个典型的表格分页加载后台处理代码: @RequestMapping(value = "GetGridData", method = RequestMethod.POST) @ResponseBody public String

springMVC,spring,mybatis全注解搭建框架--第一步,让框架跑起来

自己从事java开发工作也有一年多了,自己却没有亲手搭建一个完整的框架.于是今天自己动手搭建一个,过程中遇到一些问题,倒腾了大半天终于搞定了. 现在给大家分享一下过程,自己也记录下来,以后学习参考使用. 我采用全注解的方式去搭建springMVC,spring,mybatis框架,同时自己也可以去配置xml,但是主要还是通过注解的方式来实现.参考的网上其它大神分享的方法,多多少少有些地方写的不清楚,也并不是完全通过注解去实现的. springboot可以真正说是零配置吧,后面我将给大家演示spr