zoukankan      html  css  js  c++  java
  • 【Spring】学习SpringIoC

    Spring

    是轻量级的容器和非侵占性的框架。
    实现了Ioc容器
    实现了AOP概念
    提供对持久层与实务的支持
    实现了MVC模式
    一个全方位的应用程序框架

    SpringIoC

    Spring的IOC容器实现了对象的生命周期管理,降低了组件间的耦合度,将耦合推迟到了配置文件中,实现了软件各层的耦合。

    提供了AOP支持,可以针对POJO对象提供声明式服务能力(如:声明式事务),分离了商业逻辑组件(核心关注点)和通用服务组件(横切关注点)。

    减少了对Factory和Singleton的数量, 使代码层次更加清晰。

    提供了众多的辅助类(如:JdbcTemplate、HibernateTemplate),加快了应用开发。

    对于Hibernate Session或Jdbc Connection资源,应用将无需再处理打开和关闭。

    对于主流的应用框架(如:Hibernate、JSF、Struts)提供了整合方案

    一、JAR包

    1 spring-framework-2.5.2libjakarta-commonscommons-logging.jar
    2 spring-framework-2.5.2liblog4jlog4j-1.2.14.jar
    3 spring-framework-2.5.2distspring.jar

     二、结构

    三、代码

    Clazz.java

     1 package entity;
     2 
     3 
     4 public class Clazz {
     5     private String name;
     6     
     7     //无参,构造方法
     8     public Clazz(){
     9         System.out.println("-----Clazz()构造方法-----");
    10     }
    11     
    12     public Clazz(String name){
    13         this.name=name;
    14     }
    15     public String getName(){
    16         return name;
    17     }
    18     public void setName(String name){
    19         this.name=name;
    20     }
    21 }

    Test.java

     1 package test;
     2 
     3 import org.springframework.beans.factory.BeanFactory;
     4 import org.springframework.context.support.ClassPathXmlApplicationContext;
     5 import entity.Clazz;
     6 
     7 public class Test {
     8     
     9     public static void main(String[] args)
    10     {
    11         
    12         BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
    13         System.out.println("_______________");
    14         Clazz c1 = (Clazz) factory.getBean("clazz");
    15         
    16         System.out.println(c1.getName());
    17     }
    18 }

    Test1.java

     1 package test;
     2 
     3 import org.springframework.beans.factory.BeanFactory;
     4 import org.springframework.context.support.ClassPathXmlApplicationContext;
     5 import entity.Clazz;
     6 
     7 public class Test1 {
     8     
     9     public static void main(String[] args)
    10     {
    11         
    12         BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
    13         Clazz c1 = (Clazz) factory.getBean("clazz");
    14         Clazz c2 = (Clazz) factory.getBean("clazz");
    15         
    16         System.out.println("c1==c2"+(c1==c2));
    17         System.out.println(c1.getName());
    18         c2.setName("zy131");
    19         System.out.println(c1.getName());//c1c2同一个对象
    20     }
    21 }

    applicationContext.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 
     3 <beans xmlns="http://www.springframework.org/schema/beans"
     4          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     5          xmlns:aop="http://www.springframework.org/schema/aop"
     6          xmlns:tx="http://www.springframework.org/schema/tx"
     7          xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
     8            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
     9            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
    10         
    11         <!--配置BEAN,定义对象的名字,引用类 。  /延迟初始化,创建时/   创建全新的对象-->
    12         <bean id="clazz" class="entity.Clazz" lazy-init="true" scope="prototype">
    13             
    14             <property name="name" value="ZY131"/>
    15              
    16              <!-- 构造方法注入
    17              <constructor-arg index="0" type="java.lang.String" value="zy131"/>
    18              -->
    19         </bean>
    20         
    21             
    22 </beans>
  • 相关阅读:
    js 技巧 (八)JS代码判断集锦(之二)
    js 技巧 (七)JS代码判断集锦(之一)
    js 技巧 (六)弹窗代码汇总
    js 技巧 (六)JavaScript[对象.属性]集锦
    js 技巧 (五)
    js 技巧 (四)
    1.7.7释放锁的不良后果
    1.7.6方法stop()与java.lang.threadDeath异常
    1.7.5能停止的线程-暴力停止
    1.7.4在沉睡中停止
  • 原文地址:https://www.cnblogs.com/keepdancing/p/5278170.html
Copyright © 2011-2022 走看看