• String框架搭建的基本步骤,及从 IOC & DI 容器中获取 Bean(spring框架bean的配置)--有实现数据库连接池的链接


      Spring框架的插件springsource-tool-suite-3.4.0.RELEASE-e4.3.1-updatesite(是一个压缩包)导入步骤:

    eclipse->help->Instal New Software->点击add,找到该压缩包->选择 Name下面选择带有 /Spring IDC 的多选框->取消最下边的选框  contact all...->next...->finish;

      建立一个java project,在工程目录下(day-1)建立Folder的lib文件夹,放入Spring的五个jar架包放在里面,并且解压:

    commons-logging-1.1.1.jar

    spring-beans-4.0.0.RELEASE.jar

    spring-context-4.0.0.RELEASE.jar

    spring-core-4.0.0.RELEASE.jar

    spring-expression-4.0.0.RELEASE.jar

      上述步骤完毕后,就建立Spring的配置文件,一个典型的Spring项目,需要建立一个或多个bean的配置文件,建立Spring配置文件的步骤如下:

    该工程下的src->other->spring->Spring Bean Configuration File;该文件的后缀为.xml;然后就建立包,java类...

    -------------------------------------------------------------------------------------------------------------

      以下是在Spring的IOC容器中配置Bean,ApplicationContext 是面向使用 Spring 框架的开发者,几乎所有的应用场合都直接使用ApplicationContext;

      ApplicationContext 的主要实现类,ClassPathXmlApplicationContext:从 类路径下加载配置文件;ApplicationContext 在初始化上下文时就实例化所有单例的 Bean。

      Spring的命名空间的使用(在该配置文件中,类似于标签)如下:

    ----------------------------------------------------------------------------------- 

    1.applicationContext.xml的配置文件:基本命名空间bean的使用 及 含有特殊标签<>的使用<![CDATA[<pnapan^-^>]]>

    <bean id="helloWorld" class="com.atguigu.spring.beans.Hello">
        <property name="name" value="spring"></property>
            
    </bean>
       
    <bean id="car" class="com.atguigu.spring.beans.Car">
      //此处<constructor-arg value=" "后可添加 类型和索引 type="double" 或 index=”2“> <constructor-arg value="4234534.21"></constructor-arg> <constructor-arg value="red"></constructor-arg> <constructor-arg value="baoma"></constructor-arg> </bean> <bean id="person" class="com.atguigu.spring.beans.Person"> <property name="name"> <value><![CDATA[<pnapan^-^>]]></value> </property> <property name="age" value="24"></property> <property name="car" ref="car"></property>
    </bean>

    src 目录下的bean方法主要是set方法,有Person类,Car类,Hello类他们都雷同,写一个就行了;

    package com.atguigu.spring.beans;
    
    public class Car {
        
        private double price;
        private String color;
        private String name;
        public Car(double price, String color, String name) {
            super();
            this.price = price;
            this.color = color;
            this.name = name;
        }
        @Override
        public String toString() {
            return "Car [price=" + price + ", color=" + color + ", name=" + name
                    + "]";
        }
        
    }

    在src目录下建立的main方法

    package com.atguigu.spring.beans;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Main {
        public static void main(String[] args) {
            ApplicationContext cxt=new ClassPathXmlApplicationContext("applicationContext.xml");
            
            Hello hello=(Hello) cxt.getBean("helloWorld");
            hello.hello();
            Car car=(Car) cxt.getBean("car");
            System.out.println(car);
            
            Person person=(Person) cxt.getBean("person");
            System.out.println(person);
        }
    }

    -----------------------------------------------------------------------------------

    2.在配置文件中插入list和map集合,utli和 p 命名空间的使用,util适用于list集合,p简化代码;

    其中person类中private list<Car> car; car属性是list集合泛型是Car;

    person2类中private Map<Strng , Car> car;

    DataSource类中只有private Properties properties;属性为文件类型,再设置get,set ,toStrong这类bean方法

      <bean id="car" class="com.atguigu.spring.beans2.Car">
            <property name="name" value="changan"></property>
            <property name="color" value="red"></property>
            <property name="price" value="2312321"></property>
        </bean>
        
        <bean id="car2" class="com.atguigu.spring.beans2.Car">
            <property name="name" value="baoma"></property>
            <property name="color" value="green"></property>
            <property name="price" value="890"></property>
        </bean>
        
          <bean id="person" class="com.atguigu.spring.beans2.Person">
            <property name="name" value="panpan"></property>
            <property name="age" value="21"></property>
            <property name="car">
                <list>
                    <ref bean="car"/>
                    <ref bean="car2"/>
                </list>
            </property>
        </bean>
        
        <bean id="person2" class="com.atguigu.spring.beans2.Person">
            <property name="name" value="jiajia"></property>
            <property name="age" value="22"></property>
            <property name="car">
                <map>
                    <entry key="AAA" value-ref="car"></entry>
                    <entry key="BBB" value-ref="car2"></entry>
                    
                </map>
            </property>
        </bean>
        
        <bean id="properties" class="com.atguigu.spring.beans2.DataSource">
            <property name="properties">
                <props>
                    <prop key="username">oraclejava</prop>
                    <prop key="password">lxn123</prop>
                    <prop key="jdbcUrl">oracle</prop>
                    <prop key="driverClass">drivaer</prop>
                </props>
            </property>
        
        </bean>
        
        <util:list id="cars">
            <ref bean="car"/>
            <ref bean="car2"/>
        </util:list>
        
        <bean id="person3" class="com.atguigu.spring.beans2.Person">
            <property name="name" value="panpan"></property>
            <property name="age" value="12"></property>
            <property name="car">
                <ref bean="cars"/>
            </property>
        </bean>
        <bean id="person4" class="com.atguigu.spring.beans2.Person" 
            p:name="quanquan" p:age="23" p:car-ref="cars">
      </bean>

    Main类中的测试方法:

    ApplicationContext app=new ClassPathXmlApplicationContext("applicationContext2.xml");

    Person person=(Person) app.getBean("person");
    System.out.println(person);

    // Person person2=(Person) app.getBean("person2");
    // System.out.println(person2);

    DataSource dataSource=app.getBean(DataSource.class);
    System.out.println(dataSource);

    person=(Person) app.getBean("person3");
    System.out.println(person);

    person=(Person) app.getBean("person4");
    System.out.println(person);

    --------------------------------------------------------------------------------------

    bean的自动装配:使用时必须保证全类名下的i d名和 type具有唯一性;

    通过类型:autowire="byType";

    通过id名:autowire="byName"

    <bean id="person" class="com.atguigu.spring.beans3.Person"
    p:name="panpan" p:car-ref="car" p:address-ref="address">

    </bean>


    <bean id="person2" class="com.atguigu.spring.beans3.Person"
    p:name="jiajia" autowire="byName">

    </bean>

    <bean id="person3" class="com.atguigu.spring.beans3.Person"
    p:name="sjkdls" autowire="byType">

    </bean>

    ---------------------------------------------------------------------------------

    bean之间的关系:依赖和继承

    继承:父类:abstract 必须设为 true,子类:有parent=”“;

    依赖:通过depends-on 属性设定....

    <bean id="address"
    p:city="nanjing" p:street="jianjian" abstract="true">

    </bean>

    <bean id="address2" class="com.atguigu.spring.beans3.Address"
    p:street="panpan" parent="address" >

    </bean>

    -----------------------------------------------------------------------------

    通过bean的配置读取文件中数据,实现c3p0数据库连接池的链接

    src目录下建立file文件jdbc.properties

    user=root
    password=lxn123
    driverclass=com.mysql.jdbc.Driver
    jdbcurl=jdbc:mysql:///test

    spring 的bean文件applicationContext4.xml中进行配置;这里使用到了context命名空间

    <!-- 使用外部的配置文件 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="user" value="${user}"></property>
        <property name="password" value="${password}"></property>
        <property name="driverClass" value="${driverclass}"></property>
        <property name="jdbcUrl" value="${jdbcurl}"></property>
    </bean>

    Main类中测试:

    ApplicationContext cx=new ClassPathXmlApplicationContext("applicationContext4.xml");
    DataSource dataSource=(DataSource) cx.getBean("dataSource");
    System.out.println(dataSource.getConnection());
  • 相关阅读:
    Java参数传递方式
    C++成员函数的 重载、隐藏、覆盖分析(转)
    回调函数 (一)
    Java之String 专题二
    从10亿个浮点数中找出最大的1万个
    【onclick事件】【改变 HTML 内容innerHTML】【图片替换】【改变标签的css】【判断输入是否是数字】
    【页面加载】【九九乘法表】【document.write的功能_】【<script>直接显示数组】【声明新变量】
    Windows10 环境下安装 ElasticSearch
    数据包和数据报有何区别?
    NIO 通道和缓冲区
  • 原文地址:https://www.cnblogs.com/lxnlxn/p/5863149.html
Copyright © 2020-2023  润新知