`
Luob.
  • 浏览: 1590161 次
  • 来自: 上海
社区版块
存档分类
最新评论

Spring 基础

阅读更多
1Spring是什么
 Spring 是一个开源的控制反转(Inversion of Control) IOC 和面向切面(AOP) 的容器框架,它的主要目的就是简化企业开发.


IOC (Inversion of Control)
 //1.之前 的应用
 public class PersonServiceBean(){
  private PersonDao personDao=new PersonDaoBean();
  
  public void save(Person person){
    personDao.save(person);
  }
}

/**2.PersonDaoBean 是在应用内部创建的维护,所谓控制反转就是应用本身不负责依赖对象的创建和维护,依赖对象的创建和维护是有外部容器负责.这样控制权就由应用程序到外部容器,控制权的转移 就是所谓的反转.*/

//3.使用IOC
public class PersonServiceBean(){
  private PersonDao personDao;
  public PersonServiceBean(PersonDao personDao){
    this.personDao=personDao;
  }
 
  public void save(Person person){
    personDao.save(person);
  }
}

//4. 所谓的依赖注入就是指,在运行期,由外部容器动态的将依赖对象注入到组件中.



3.Spring 的好处
1.降低组件之间的耦合度,是向软件各层之间的解耦

2.可以使用容器提供众多的服务,如,事务管理服务,消息服务等,当我们使用容器管理事务时,开发人员就不需要手工控制事务,也不需要处理复杂的事务传播.

3.容器提供单利模式支持,开发人员不在需要手动编写实现代码.

4.容器提供了AOP技术,利用他很容易实现如权限拦截,运行期监控等功能

5.容器提供了众多辅佐类,使用 这些类能够加快应用的开发,如 jdbcTemplate,HibernateTemplate.

6.Spring对于主流的应用框架提供了集成支持,如 Hibernate JPA Struts ibatis mybatis 等 便于应用的开发.



4.来看事务的传播属性
public void paymnet(){
 Bean1.update();  //更新金额
 Bean2.save(); //记录日志操作

}

//之前是这样做的
public class Bean1{
 public void upate(){
  Connect conn=null;
  con.setSutoCommit(false);
  Statement.executeUpdate("update account set amount =? where id=?");
 }

}
public class Bean2{
 public void save(){
  Connection con=null;
  con.setAutoCommit(false);
  Statement.executeUpdate("insert into Log(content) values (?)"); 
 }
}

//如果我们不使用SPring,针对下面的两种业务需求,我们该如何做
//1  要求 Bean1.upate 和Bean2.save() 在同一个事务中执行
//2. 要求 不管Bean1.update() 的是否成功,都需要记录操作日志.
这样我就只有 修改代码 传入 同一个 Connection


//5下面看看使用spring的事务传播属性

@Transactional(propagation=Propagation.Required)
public void paymnet(){
 Bean1.update();  //更新金额
 Bean2.save(); //记录日志操作

}

public class Bean1{
@Transactional(propagation=Propagation.Required)
public void update(){
executeUpdate("update account set amount= ? where id=? ");
}
}

public class Bean2{
@Transactional(propagation=Propagation.Required)
//@Transactional(propagation=Propagation.RequiredNew) 对于上面需求第二种
public void save(){
executeUpdate("insert into Log(content) values (?)");
}

}


//6 spring 是重量级 还是 轻量级
其实划分一个应用是否属于轻量级还是重量级,主要看他使用了多少服务.使用的服务越多,容器要为普通java对象做的工作越多,必然会影响应用的发布时间 或者 运行性能.
EJB容器就是因为他默认为应用提供了EJB中所有的功能,所以它是重量级.



//7.Spring 容器的初始化
//1. 使用类路径寻找配置文件  通用 
ApplicationContext ctx= new ClassPathXmlApplicationContext(new String[]{"beans.xml"});
IStudentService studentService=(IStudentService)context.getBean("studentService");

//2.使用文件系统来寻找配置文件实例化容器  不通用 在linux等 就会有问题
ApplicationContext ctx=new FileSystemXmlApplicationContext(new String[]{"d:\\beans.xml"});

//通过数组传入 多个配置文件.


//8.Spring 配置文件 没有提示
1.主要是由于myEclipse 中没有spring 文件模版, 没有从网络上下载下来,如果下载下来后 就会缓存起来的

2.如果没有联网 就手动设置呗 
myeclipse  -->window--->prefarence--->myeclipse-->files and editors -->xml--->xmlCatalog --->add 在 弹出的窗口中Location 选中 File System --->dist\resources\spring-beans-2.5.xsd  -->修改 key Type =Schema Location ---> 修改key 为 http://www.springframework.org/beans/spring-beans-2.5.xsd --ok


//9. bean 配置节点中的id 和 name 的区别
 <bean id="personService"  name="/personService/"></bean>

 id:本身就是xml的一个属性,这个属性受到xml解析器的限制不能有特殊字符,有些情况下 要为bean 的名字定义特殊字符 此时就需要使用 name.(spring建议我们配置bean的第一个字母要小写)

 name:可以包含特殊字符的 bean 的名字
0
0
分享到:
评论
2 楼 chenzheng8975 2012-12-07  
哈哈顶起
1 楼 我把握我的命运 2012-12-05  
大哥写得真心好,比我们这培训老师讲得好多了,一看就懂了,赞。。。。再接再厉

相关推荐

    spring基础

    Spring 基础 Spring 框架是 Java 语言中最流行的框架之一,广泛应用于企业级应用程序的开发。它提供了一站式的解决方案,能够解决对象创建、依赖关系、事务管理、持久层等问题。下面是 Spring 框架的主要概念和组件...

    Spring基础培训ppt

    这个“Spring基础培训PPT”应该会涵盖Spring的基本概念、核心模块以及如何在实际项目中应用。 **依赖注入** 依赖注入是Spring的核心之一,它允许开发者在运行时通过容器来管理对象之间的依赖关系,而不是在代码...

    spring基础jar包.zip

    本文将深入探讨"spring基础jar包.zip"中的关键知识点,并解析这些jar包在Spring框架中的作用。 首先,我们要明确的是,"spring基础jar包.zip"主要是为了快速搭建Spring框架环境而准备的,其中包含了一系列Spring的...

    Spring基础教程.pdf

    Spring 基础教程.pdf Spring 是一个流行的 Java 框架,用于开发企业级应用程序。该框架提供了一个灵活的方式来开发基于 Java 的应用程序,涵盖了从简单到复杂的各种应用场景。本教程旨在指导读者快速入门 Spring ...

    spring基础开发的jar包

    这个"spring基础开发的jar包"是专门为Spring Web开发准备的,包含了一系列核心组件和依赖,使得开发者可以快速搭建一个功能完备的Spring MVC应用程序。在本文中,我们将深入探讨这些jar包中的关键知识点。 1. **...

    Spring基础jar包.rar

    本压缩包"Spring基础jar包.rar"包含了Spring框架核心组件的重要部分,具体包括以下几个关键的jar包: 1. **Spring-beans.jar**:这个jar包包含了Spring框架的核心组件,负责Bean的生命周期管理,如实例化、配置、...

    Spring基础知识汇总 Java开发必看

    Spring基础知识汇总 Java开发必看

    spring基础教程 spring基础教程

    总结:Spring基础教程将引导你深入了解这个框架的各项功能,从容器管理到AOP,再到Web开发和安全性。通过学习,你可以掌握如何利用Spring提升代码的灵活性和可维护性,以及如何构建健壮的Java企业级应用。阅读...

    Spring 基础jar包

    Spring的基础jar包包含了运行Spring应用程序所需的核心组件,使得开发者能够快速搭建Spring环境并开始使用其基本功能。下面我们将深入探讨Spring框架的一些核心知识点。 1. **依赖注入(Dependency Injection, DI)...

    java Spring基础教程

    Java Spring 是一个开源框架,主要用于简化企业级Java应用的开发。Spring框架以其模块化、松耦合和依赖...阅读《Spring基础教程.pdf》将引导你逐步走进Spring的世界,理解并运用这些核心概念,提升你的Java开发技能。

    Spring基础篇.pdf

    Spring框架是一个全面的Java...总结来说,Spring框架通过其模块化的设计和丰富的功能提供了强大的基础设施,使得Java企业级应用开发更加高效和简洁。同时,它以POJO为基础的编程模型,促进了良好的编程习惯和测试能力。

    Spring基础学习资料,很全面,很经典,手工整理,适合刚学习spring的同学

    这份“Spring基础学习资料”涵盖了Spring框架的基础知识,特别适合初学者系统地学习和掌握。 1. **Spring入门学习前导篇**: 在开始Spring的学习之前,了解Spring的基本概念和历史背景是必要的。Spring框架起源于...

    Spring基础教程.rar

    本教程的"Spring基础教程.pdf"文件将详细讲解上述概念,并通过实例演示如何使用Spring框架。你将学习到如何配置Spring容器,创建和管理Bean,理解AOP的原理,以及如何使用Spring MVC构建Web应用。同时,教程可能还会...

    spring基础进阶技巧200篇.zip

    《Spring基础进阶技巧200篇》是一本关于Spring框架的资源,它提供了200篇文章,涵盖了Spring框架的基础知识和进阶技巧。这本资源可以帮助开发人员更好地理解和应用Spring框架,提升开发效率和代码质量。 该资源主要...

    《spring基础教程》

    总的来说,《Spring基础教程》将涵盖以上这些核心概念,并通过实例教你如何在实际项目中使用Spring框架。无论你是初学者还是有一定经验的开发者,都可以从这个教程中获益,提升你的Spring开发技能。通过阅读"Spring...

    spring 基础教程精华集

    此外,`spring基础.pdf` 和 `spring控制模型.pdf` 可能会涵盖Spring的其他基础内容,如Bean的生命周期、事件监听、国际化支持等。`Spring3_权威开发指南.pdf` 则提供了更全面的Spring 3.x版本的开发指导。 对于初学...

    spring基础功能分享ppt课件.ppt

    Spring基础功能分享 Spring是一个非常优秀的开源产品,它提供了广泛的内容和深入的功能模块,包括核心容器、Application Context、AOP模块、JDBC抽象及DAO模块、ORM映射集成模块、Spring MVC框架、Spring Portlet ...

    Spring基础教程.pdf.zip

    《Spring基础教程》是一本深度剖析Spring框架的入门指南,旨在帮助初学者和有经验的开发者更好地理解和应用Spring。在本教程中,我们将探讨Spring的核心概念、主要特性以及如何将其集成到实际项目中。 首先,Spring...

    Spring基础的思维导图版+附带PDF版

    这个资源包含的是一个Spring基础的思维导图和PDF版,可以帮助学习者更直观、系统地理解Spring的核心概念。 首先,我们从"Spring AOP"开始。AOP(Aspect-Oriented Programming)是面向切面编程,它允许程序员定义...

    spring基础教程.rar

    至于具体的学习资源,本压缩包“Spring基础教程”可能包含一系列PDF文档、视频课程或代码示例,它们将逐步引导你了解并掌握Spring的基本用法,包括环境搭建、基本配置、Bean的创建与管理、AOP的实现、Spring MVC的...

Global site tag (gtag.js) - Google Analytics