zoukankan      html  css  js  c++  java
  • Sping框架初步使用1

    Spring核心容器的理论:Spring核心容器就是一个超大工厂,所有的对象都会被当成Spring容器的核心管理对象,Spring把容器中一切对象统称为Bean(只要是一个Java类,Spring就可以管理该Java类)

    初步感觉,Spring就是一个给开发者管理Java中所有对象的工具,开发者不在直接通过构造函数来构建对象,而是通过Spring来产生对象,对象间的各种依赖关系,通过Spring的配置来完成。

    第一个例子:Spring的jar包下完后,还得在额外添加common-logging的Jar包-----这是书上看的,不理解为啥不把这个包放到Spring中,还要自己再下载。。。。

          添加两个具有依赖关系的类,然后再添加Spring的配置文件(.xml),说是文件名没有限制,为了区分用的beans.xml

          配置文件的根目录<beans></beans>里面放<bean>bean基本要有id --相当于这个bean的身份证,Class----对应类的位置。还有驱动setter方法的标签

          在main函数中通过id来得到类的对象,调用类的方法

    这个是配置文件:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4        xsi:schemaLocation="http://www.springframework.org/schema/beans
     5            http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
     6 
     7     <bean id="person" class="zhangtianxiao.Person">
     8         <property name="axe" ref="axe"></property>
     9     </bean>
    10     <bean id="axe" class="zhangtianxiao.Axe">
    11     </bean>  
    12     <bean class="zhangtianxiao.Listener">
    13     </bean>       
    14 </beans>

    下面是main方法:

     1 package zhangtianxiao;
     2 
     3 import org.springframework.context.ApplicationContext;
     4 import org.springframework.context.support.ClassPathXmlApplicationContext;
     5 
     6 public class Main {
     7 
     8     public static void main(String[] args) {
     9         // TODO Auto-generated method stub
    10         System.out.println("sdfsd");
    11         ApplicationContext  contex = new ClassPathXmlApplicationContext("beans.xml");
    12         Person p = contex.getBean("person",Person.class);
    13         p.useAxe();
    14         
    15         EmailEvent e = new EmailEvent(new String("s"),"sdfsdfsd");
    16         
    17         contex.publishEvent(e);
    18     }
    19 
    20 }

    在使用框架的包的时候,可以把所需某个框架的所有包添加成user labrary,以后使用的时候会方便很多

    ApplicateContex是BeanFactory的子接口,但一般都会选择ApplicateContext(在加载配置文件的时候会按配置文件的要求创建出所有对象,对于资源比较紧张的系统可以使用BeanFactory这个接口,这个在加载配置文件的时候不会创建对象,只会在调用该bean的时候才创建)还有文件的各种加载方式,通过文件加载,通过类路径加载,,,,,

    bean的定义:class:指定类

           name:和id的作用类似,代表bean的标识符

           scope:bean的作用域,如果在web项目中,

          constructor-arg:这个会让框架去调用构造函数

          properties:这个会让框架调用setter方法为属性赋值

          。。。。。还有其他的

    bean的作用域:singleton:单例,仅创建一个对象实例

            prototype:每次请求特定bean时就会创建新的对象

    bean的生命周期:可以为bean设置初始化和销毁时执行的方法,还要在配置文件中配置这两个方法

    bean也可以定义继承,但这个继承和Java中的继承不太一样,这个只是简单的爸定义bean时重复性的代码抽取出来,减轻编码的工作量

    Spring依赖注入:1.基于构造函数的依赖注入,通过constrator标签,去调用构造函数

            2.基于设置值的依赖注入,这是通过propertied调用setter方法来完成注入

    与内部类对应的还有内部bean

    还可以通过注解的方式来代特配置文件

    Spring的事件处理+自定义事件

    Spring用来管理数据库访问的相关类

    待续。。。。Spring JDBC Spring事物管理  Spring Web MVC框架

      

  • 相关阅读:
    jquery操作select(取值,设置选中)
    jQuery懒加载插件 – jquery.lazyload.js简单调用
    js获取URL中的参数
    数据结构之队列C++版
    数据结构之堆栈java版
    数据结构之堆栈C++版
    c++操作符重载
    QT状态机
    c++/c关于函数指针
    学习Qt的一点小感想
  • 原文地址:https://www.cnblogs.com/xiaochenztx/p/8762720.html
Copyright © 2011-2022 走看看