`
gladstone
  • 浏览: 70948 次
  • 性别: 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 boot的spring cloud 开源框架

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

    Spring框架的简单实现

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

    Spring+SpringMVC+Hibernate框架集成详解

    在本文档中,我们将详细介绍如何将 Spring、SpringMVC 和 Hibernate 框架集成,以便构建一个完整的 Web 应用程序。我们将介绍如何配置 Spring 框架,如何配置 SpringMVC 框架,如何配置 Hibernate 框架,並且如何将...

    Spring框架

    Spring最早由Rod Johnson在2003年创建,是一个轻量级的Java开发框架,它覆盖了JavaSE和JavaEE的多个层级,被称为一站式(full-stack)轻量级开源框架。 #### 二、Spring框架的起源与发展 ##### 2.1 背景介绍 ...

    Spring框架.ppt

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

    Spring高级框架课程笔记.pdf

    * Bean:在 Spring 框架中,Bean 是一个核心概念,表示一个可以被 Spring 框架管理的对象。 * DI(Dependency Injection):在 Spring 框架中,DI 是一种设计模式,能够将对象的耦合度降低,提高对象的灵活性和可...

    第一次搭建Spring框架

    至此,你已经成功地搭建了一个基础的Spring框架环境。然而,Spring的功能远不止这些。它还包含了对数据库操作的支持(如JDBC、JPA、Hibernate),Web MVC框架,以及各种其他模块如Spring Security(安全)、Spring ...

    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知识框架详解

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

    Spring+SpringMVC+Mybatis框架整合例子(SSM) 下载

    首先,Spring框架是核心,它提供了一个全面的编程和配置模型,用于简化企业级应用的开发。Spring的依赖注入特性使得对象之间的关系在运行时动态地决定,而不是硬编码在类的内部。这样,我们可以更容易地进行单元测试...

    spring cloud 框架搭建

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

    Spring框架基础总结

    7. **Spring MVC**:是一个全功能的Web应用MVC框架,构建在核心容器之上,为Web开发提供了高度的灵活性和可定制性。 四、示例解析 为了更好地理解Spring框架的作用,我们可以通过一个简单的示例来加以说明。假设...

    spring等框架学习电子书

    Hibernate则是一个ORM框架,提供了Java对象与数据库之间的映射,使得数据库操作更加直观。 通过学习这些电子书,你不仅可以掌握Spring框架的精髓,还能理解如何将它与其他框架(如Struts和Hibernate)结合使用,以...

    spring框架外文文献.docx

    3. **Web**:Spring的Web模块提供了用于构建Web应用程序的工具,如Spring MVC,这是一个模型-视图-控制器架构,简化了Web应用程序的开发。此外,Spring Web Services模块支持创建基于SOAP和RESTful的Web服务。 4. *...

    基于SSM(Spring+SpringMVC+Mybatis)框架结构的java web应用开发案例

    在"SSM--Spring+SpringMVC+Mybatis+Mysql框架案例实践"中,开发者可能已经创建了一个使用MySQL数据库的示例项目。项目中可能包含了以下关键组件: 1. **实体类(Entity)**:代表数据库中的表,通常会包含对应的...

    spring框架电子书

    除此之外,书中还可能涉及Spring Boot,它是Spring框架的一个子项目,旨在简化Spring应用的初始搭建和运行过程。Spring Boot通过默认配置加快开发速度,并且支持快速启动微服务。 测试部分,Spring提供了强大的单元...

    java spring框架学习资料 pdf

    在学习过程中,你还将接触到Spring Boot,这是一个基于Spring框架的快速开发工具,它简化了Spring应用的初始搭建和配置过程,让开发者可以更快地专注于业务逻辑。Spring Security则是Spring生态中的安全组件,提供...

    Spring框架的所有jar包

    Spring框架是Java开发中最常用的轻量级开源框架...以上这些jar包构成了Spring框架的核心组件,它们协同工作,为Java开发者提供了一个强大、灵活且易于维护的开发环境。在实际项目中,根据需求选择相应的模块引入即可。

Global site tag (gtag.js) - Google Analytics