`
ybhuxiao
  • 浏览: 193293 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring笔记(未完)

    博客分类:
  • java
阅读更多
★、要使用的jar
dist/spring.jar
lib/jakarta-commons/commons-logging.jar

如果使用aop,还需要
lib/aspectj/aspectjweaver.jar
lib/aspectj/aspectjrt.jar
lib/cglib/cglib-nodep-2.1_3.jar

如果使用了jsr-250中的注解,还需要
lib/j2ee/common-annotabions.jar


★、applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

  <bean id="" class="">
    <!-- collaborators and configuration for this bean go here -->
  </bean>

  <bean id="" class="">
    <!-- collaborators and configuration for this bean go here -->
  </bean>

  <!-- more bean definitions go here -->

</beans>




★、实例化Spring容器常用的两种方式
方法一:在类路径下寻找配置文件来实例化容器
ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

方法二:在文件系统路径下寻找配置文件来实例化容器(不推荐使用,linux下不好使)
ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"d:/applicationContext.xml"});



★、实例化bean的三种方式
1. 用构造器来实例化
<bean id="exampleBean" class="examples.ExampleBean"/>

2. 使用静态工厂方法实例化
<bean id="exampleBean"
      class="examples.ExampleBean2"
      factory-method="createInstance"/>

3. 使用实例工厂方法实例化
<!-- the factory bean, which contains a method called createInstance() -->
<bean id="serviceLocator" class="com.foo.DefaultServiceLocator">
  <!-- inject any dependencies required by this locator bean -->
</bean>

<!-- the bean to be created via the factory bean -->
<bean id="exampleBean"
      factory-bean="serviceLocator"
      factory-method="createInstance"/>




★、Bean的作用域
singleton(默认为singleton,每次调用都是同一实例)
prototype(每次调用都用容器中获取一个新的实例)
request
session
global session
<bean id="accountService" class="com.foo.DefaultAccountService" scope="prototype"/>


1. singleton在spring容器实例化的时候实例化,prototype在getBean的时候才初始化(建议使用,有问题的话可以在启动的时候就看出来)
2. 可以给bean加一个lazy-init="true"来让singleton不要在spring容器初始化的时候实例化(不建议使用)
<bean id="person" class="spring.Person" lazy-init="true"></bean>

3. 如果想为所有bean进行延迟初始化,可以给beans加一个属性default-lazy-init=”true” (不建议使用)
4. 可以给bean加一个属性init-method=”init”和destroy-method=”destroy”在实例化该bean之后调用init方法,spring容器关闭后,会自动调用destroy方法
<bean id="person" class="spring.Person" init-method="init" destroy-method=”destroy”></bean>

public Person(){
//构造函数
}
public void init(){
//调用完构造函数会来调用这个方法,方法名是可以自定义的,可以在这里做一些事情,比如对资源进行打开,等
}
public void destroy(){

}

ApplicationContext ctx = ……
ctx.close();




★、依赖注入
1. 构造器注入
无参
package x.y;

public class Foo {

    public Foo(Bar bar, Baz baz) {
        // ...
    }
}

<beans>
    <bean name="foo" class="x.y.Foo">
        <constructor-arg>
            <bean class="x.y.Bar"/>
        </constructor-arg>
        <constructor-arg>
            <bean class="x.y.Baz"/>
        </constructor-arg>
    </bean>
</beans>


有参
// 有参构造函数
// 当使用简单类型时,比如<value>true<value>,Spring将无法知道该值的类型。不借助其他帮助,他将无法仅仅根据参数类型进行匹配
package examples;

public class ExampleBean {

    // No. of years to the calculate the Ultimate Answer
    private int years;

    // The Answer to Life, the Universe, and Everything
    private String ultimateAnswer;

    public ExampleBean(int years, String ultimateAnswer) {
        this.years = years;
        this.ultimateAnswer = ultimateAnswer;
    }
}

// 可以通过使用'type'属性来显式指定那些简单类型的构造参数的类型,比如:
<bean id="exampleBean" class="examples.ExampleBean">
  <constructor-arg type="int" value="7500000"/>
  <constructor-arg type="java.lang.String" value="42"/>
</bean>

// 还可以通过index属性来显式指定构造参数的索引,比如下面的例子:
<bean id="exampleBean" class="examples.ExampleBean">
  <constructor-arg index="0" value="7500000"/>
  <constructor-arg index="1" value="42"/>
</bean>


2. setter注入
public class ExampleBean {

    private AnotherBean beanOne;
    private YetAnotherBean beanTwo;
    private int i;

    public void setBeanOne(AnotherBean beanOne) {
        this.beanOne = beanOne;
    }

    public void setBeanTwo(YetAnotherBean beanTwo) {
        this.beanTwo = beanTwo;
    }

    public void setIntegerProperty(int i) {
        this.i = i;
    }    
}

<bean id="exampleBean" class="examples.ExampleBean">

  <!-- setter injection using the nested <ref/> element -->
  <property name="beanOne"><ref bean="anotherExampleBean"/></property>

  <!-- setter injection using the neater 'ref' attribute -->
  <property name="beanTwo" ref="yetAnotherBean"/>
  <property name="integerProperty" value="1"/>
</bean>

<bean id="anotherExampleBean" class="examples.AnotherBean"/>
<bean id="yetAnotherBean" class="examples.YetAnotherBean"/>



3. Field注入(用于注解方式),用@Resource注解完成属性装配
可以减少applicationContext.xml的代码






剩下的有时间再发


★、Spring自动扫描和管理bean


★、基于注解使用AOP


★、基于XML使用AOP


★、Spring和JDBC组合开发和事物管理


0
0
分享到:
评论

相关推荐

    SPRING 笔记SPRING 笔记

    SPRING 笔记SPRING 笔记SPRING 笔记

    spring笔记.pdf

    spring笔记spring基础笔记

    spring笔记.md

    spring入门笔记

    达内,tarena,spring笔记,springPPT课件,达内spring笔记

    达内教育(Tarena)作为知名的IT培训机构,提供了这套Spring的学习资料,包括笔记和PPT课件,旨在帮助学员全面掌握Spring的核心概念和技术。 Spring笔记可能涵盖了以下内容: 1. **IoC(Inversion of Control)容器...

    Spring笔记.doc

    【Spring 概念与优势】 Spring 是一个开源的 Java 应用框架,主要设计目标是简化企业级应用的开发。它的核心特性是依赖注入(Dependency Injection,简称 DI)和面向切面编程(Aspect-Oriented Programming,简称 ...

    尚硅谷Spring笔记

    尚硅谷Spring笔记

    Springcloud学习笔记.md

    Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...

    Spring笔记 狂神说

    spring笔记 狂神说

    Spring学习笔记(精华全记录)

    ### Spring学习笔记(精华全记录) #### Spring框架概述 Spring框架源自Rod Johnson的个人项目,最初于2002年末发布。Spring并非一开始就作为一个完整的框架出现,而是从一个项目逐步发展而来。随着项目的成熟,...

    Spring笔记示例源代码

    "Spring笔记示例源代码"这个资源很可能是为了帮助学习者深入理解Spring框架的各种功能和用法而提供的实际代码示例。 1. **Spring IoC**:IoC是Spring的核心特性,它将对象的创建和管理权交给Spring容器,使得开发者...

    spring 笔记

    spring 初学 笔记 入门提示

    spring笔记.zip

    Spring框架是Java开发中的核心组件,它为应用程序提供...这些笔记将涵盖这些主题的基本概念、使用方法和示例,帮助初学者快速理解和掌握Spring生态系统。通过深入学习和实践,开发者能够构建出高效、可扩展的Java应用。

    Spring笔记.docx

    ### Spring框架概述与核心特性 #### 一、Spring框架简介 Spring框架是一个开源的企业级Java应用框架,由Rod Johnson在2003年发起并创建。它为Java应用程序提供了全面的基础设施支持,使得开发者能够专注于业务逻辑...

    尚硅谷Spring6的笔记

    尚硅谷Spring6的笔记

    Spring学习笔记( spring视频笔记)

    Spring学习笔记( spring视频笔记)

    Spring学习笔记(马士兵spring视频笔记).doc

    Spring学习笔记(马士兵spring视频笔记).docSpring学习笔记(马士兵spring视频笔记).docSpring学习笔记(马士兵spring视频笔记).docSpring学习笔记(马士兵spring视频笔记).doc

    尚硅谷周阳老师SpringCloud笔记

    【尚硅谷周阳老师SpringCloud笔记】是一份深入学习SpringCloud技术体系的教程资源,由知名教育机构尚硅谷的周阳老师编撰。SpringCloud作为微服务架构的重要框架,广泛应用于现代企业的分布式系统开发中。这份笔记...

    spring笔记.rar

    《Spring框架深度解析——基于传智播客左慈老师培训笔记》 在Java开发领域,Spring框架无疑是最具影响力和广泛使用的轻量级框架之一。它以其强大的功能、灵活的设计和丰富的生态系统,成为了企业级应用开发的首选。...

    Spring笔记整理.zip

    本笔记将深入讲解Spring的核心概念和使用方法,帮助你快速掌握这一重要的技术。 1. **注解装配**:在Java世界中,注解(Annotation)是一种元数据,它可以提供额外的信息给编译器或运行时环境。在Spring中,注解被...

Global site tag (gtag.js) - Google Analytics