纯JAVA配置Spring(抛弃XML配置)

Spring神一样存在的框架,帮助Java开发者巧妙快速的应对公司或企业的一个个变态的需求.这偏文章不谈原理,只论快速配置使用.

笔者所用开发工具是MyEclipse,使用了强大的Maven管理项目.废话不多语,开始....

** 1.创建项目**

![Uploading Snip20170531_4_284300.png . . .]
Snip20170531_4.png
Snip20170531_5.png
Snip20170531_6.png

** 2.添加Spring依赖(笔者使用的是4.1.0)**

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.1.0.RELEASE</version>
        </dependency>

** 3.创建Java配置文件WebConfig**

具体注解的使用以及意义,读者自行查阅文档.

package demo.config;

import java.io.IOException;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.multipart.support.StandardServletMultipartResolver;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;



@Configuration
@EnableWebMvc
@ComponentScan("demo") 
public class WebConfig extends WebMvcConfigurerAdapter {

    @Bean 
    public ViewResolver viewResolver(){
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        resolver.setExposeContextBeansAsAttributes(true);
        return resolver;
    }
    

    @Override
    public void configureDefaultServletHandling(
            DefaultServletHandlerConfigurer configurer) {
        // TODO Auto-generated method stub
        configurer.enable();
    }

    @Bean
    public MultipartResolver multipartResolver() throws IOException{
        return new StandardServletMultipartResolver();
    }
    


}

** 4.创建RootConfig**


package demo.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@Configuration
@ComponentScan(basePackages={"demo"},
                excludeFilters={
        @Filter(type=FilterType.ANNOTATION,value=EnableWebMvc.class)
})

public class RootConfig {

}

** 5.创建DispatcherServlet**

package demo.config;


import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class DispatcherServlet extends
        AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        // TODO Auto-generated method stub
        return new Class<?>[] {RootConfig.class};
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        // TODO Auto-generated method stub
        return new Class<?>[] {WebConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        // TODO Auto-generated method stub
        return new String[] {"/"};
    }
}

** 6.创建控制器**

package demo.controller;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {
    @RequestMapping(value="/home")
    public String home(){
        return "Home";
    }
}

** 7.在WEB-INF 下创建views文件夹,并创建Home.jsp 文件 最终项目结构如下**

Snip20170531_7.png

** 8.将程序部署到Tomcat 访问http://127.0.0.1:8080/Demo/home**

Snip20170531_8.png

纯Java配置Spring还是比较简单的,相对于传统的XML配置,我个人还是比较喜欢这种方式.具体如何看个人喜好.今天的教程就到此,有疑问的小伙伴可以给我留言,有不对的地方,希望大神不吝赐教.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,997评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,974评论 6 342
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,612评论 25 708
  • 作用: 1,仅仅对屏幕进行分类,真正排布UI元素还得使用autolayout;2,不再有横竖屏的概念,只有屏幕尺寸...
    小子爱搞事阅读 821评论 5 0
  • 维度分两种。 低维:竞争,低价,攻击,时刻警惕 高维:无竞争,共赢,共成长 你想要什么样的人生? 1) 看微博:关...
    利晓琳阅读 497评论 0 0