`
gladstone
  • 浏览: 68607 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

[spring]在春天搞一个叫春的框架

阅读更多
请注意断句。

前阵子复习了一下Spring,小总结。


最初用Spring应该是1.2版本吧。xml配置麻烦得能恶心死人,主要是和struts配合用,居然忍过来了。2.0以后逐渐加入了比较好的annotation支持,简化了xml配置,可是最近却不怎么用它了,CT就没有用上,因为其实Spring的每个模块都有不错的替代品,比如依赖注入的话Guice就已经很够用了。




手头上的版本是2.5。蓝色是Sample代码

1 注释驱动的依赖注入
1.1 Autowired (和Guice的@Inject差不多)
Spring 2.5 引入了 @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。@Autowired(required=false)
private SomeStrategy strategy = new DefaultStrategy(); 
此时配置文件可能需要加入
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
1.2 @Qualifier
Spring 允许我们通过 @Qualifier 注释指定注入 Bean 的名称,避免产生注入错误。
1.3 <context:annotation-config/>
其实就是AutowiredAnnotationBeanPostProcessor 配置的代替品
1.4 @Component
虽然我们可以通过 @Autowired在 Bean 类中使用自动注入功能,但是 Bean 还是在 XML 文件中通过 <bean> 进行定义,通过@Component从 XML 配置文件中完全移除 Bean 定义的配置是让人感觉很舒服的特性之一。
同时应该在配置文件里加入扫描设置:
<context:component-scan base-package="org.net9.web.dummy"/>
值得一提的是,和@Component具有一样功能的有@Repository,@Service,@Controller。有利于web应用的分层注释
1.5 @Scope
可定义scope,可选的有prototype,session,request,global和singleton,和Guice的@ApplicationScoped之类差不多了

2 基于注解驱动的MVC
2.1 @Controller和@RequestMapping
有这两个annotation很方便。@Controller定义MVC中的控制器,@RequestMapping控制URL转发请求。
@RequestMapping("/dummy/") //接受形如/dummy/的url
@RequestMapping(params="mothod=list") //通过参数method,只接受
该参数是list的url,和Struts的DispatchAction一个效果。
另外还可以通过@RequestMapping只接受某种方式的web请求
@RequestMapping(params = "mode=submit",
method = RequestMethod.POST)  //只针对POST请求
2.2 @RequestParam
入参绑定的功能很贴心啊,就不用在处理方法里面再用request.getParameter了(当然,屏蔽了request并不一定是好处)。
public String hoge(@RequestParam("dummy")int dummy) {}

3 国际化支持
虽然不是什么让人欣喜的功能。配置xml里面加入配置,jsp页面就可以随意用,和Struts大同小异
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" abstract="false" lazy-init="default" autowire="default" dependency-check="default">
<property name="basename" value="Messages" />
<property name="useCodeAsDefaultMessage" value="true" />
</bean>

4 测试支持
本来测试要使用ClassPathXmlApplicationContext来先注入相关类的,有了AbstractDependencyInjectionSpringContextTests让人觉得很惊喜。只要继承一下然后重载getConfigLocations方法传入配置文件路径就会得到自动的注入
public class DummyDAOTest extends AbstractDependencyInjectionSpringContextTests{
    protected String[] getConfigLocations(){
           return CONTEXT_XML_LOCATIONS;
    }
    public static final String[] CONTEXT_XML_LOCATIONS = { "applicationContext.xml" };
    @Autowired
    DummyDAO dummyDAO;
}


 发布时间:2009-03-22 03:18:31 | 阅读:353 | 评论:0 
分享到:
评论

相关推荐

    Spring.Batch批处理框架

    Spring Batch 是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。Spring Batch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,使得已经使用 Spring 框架的开发者或者企业更...

    基于spring boot的spring cloud 开源框架

    springCloud是基于SpringBoot的一整套实现微服务的框架。他提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。最重要的是, 跟...

    Spring框架的简单实现

    我们从一个简单的容器开始,一步步的重构,最后实现一个基本的Spring框架的雏形,为了帮助我们更加深入的理解Spring的IoC的原理和源码。 详细内容见博文: 【SSH进阶之路】一步步重构容器实现Spring框架——从一个...

    Spring框架.ppt

    提供Spring框架的基本功能,其主要组件是BeanFactory,是工厂模式的实现。 Spring 上下文。向Spring 框架提供上下文信息,包括企业服务,如 JNDI、EJB、电子邮件、国际化、校验和调度等。 Spring AOP。通过配置管理...

    Spring Boot框架是一个用于构建任何类型应用程序的修改版Spring框架.pdf

    Spring Boot框架是一个用于构建任何类型应用程序的修改版Spring框架,它基于Java并提供了快速构建和启动应用程序的能力。Spring Boot框架通过自动配置和一系列预定义的特性,显著简化了Spring应用程序的开发过程。...

    spring知识框架详解

    Spring : 春天 —&gt;给软件行业带来了春天 ... 本身就是一个大杂烩 , 整合现有的框架技术。 你是否不了解spring,到底是什么,一张图完美诠释了spring的组成,优点,代理设计模式,面向切面编程,事务,整合mybatis等等。

    spring框架api中文版.zip(spring开发手册)

    新特性和增强功能在Spring框架3.0 2.1。 Java 5 2.2。 改进文档 2.3。 新的文章和教程 2.4。 新模块的组织和构建系统 2.5。 概述的新特性 2 5 1。 核心api更新Java 5 2 5 2。 弹簧表达式语言 2 5 3。 这个控制反转...

    spring cloud 框架搭建

    整个springcloud 框架的模板,包含EurekaServer注册中心,服务提供端,服务调用端,熔断器,负载均衡-动态路由,配置中心(github 托管配置文件),自动更新配置中心,框架的一个整合,适合学习springcloud 框架的...

    Spring.NET框架参考文档

    学习Spring.net框架,学习Spring.net框架,学习Spring.net框架,学习Spring.net框架,学习Spring.net框架,

    Spring框架开发参考中文手册

    一本很好的快速学习Spring框架开发的指导手册,中文、PDF排版格式。

    spring框架,技术详解及使用指导

    spring框架,技术详解及使用指导spring框架,技术详解及使用指导spring框架,技术详解及使用指导spring框架,技术详解及使用指导spring框架,技术详解及使用指导spring框架,技术详解及使用指导spring框架,技术详解及使用...

    Spring Batch批处理框架

    Spring Batch批处理框架Spring Batch批处理框架Spring Batch批处理框架

    Spring框架文档 - 核心技术部分 中文版 - 第一部分.pdf

    Spring框架(Spring Framework)有自己的AOP框架,在概念上很容易理解,它成功地解决了Java企业编程中80%的AOP需求。 本文档也讲解Spring与AspectJ的集成,就特征而言,AspectJ是Java企业空间中目前最丰富的、最成熟...

    Spring框架高级编程完整源码

    本书涵盖Spring的所有特性,并且演示了如何将其构成一个连贯的整体,帮助读者理解Spring方法的基本原理、何时使用Sping以及如何效仿最佳实践。所有这些都以完整的样本应用程序来举例说明。读完本书,读者将能够有效...

    spring4.0框架demo

    利用maven构建的spring4.0框架的demo

    spring 安全框架例子

    spring 安全框架例子,spring 安全框架例子

    springIOC手写框架分析

    springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC...

    Spring是一个开源的Java框架

    Spring是一个开源的Java框架

    第一次搭建Spring框架

    第一次搭建Spring框架、一个演示的demo

Global site tag (gtag.js) - Google Analytics