zoukankan      html  css  js  c++  java
  • Spring学习笔记02-配置bean(第七周)

     

    第七周

    所花时间

    25h左右

    代码量

    1500行左右

    博客量

    3篇

    学到的知识点

    spring中的自动装配,bean之间的关系,bean的作用域,引用外部属性文件

     

     

    一、自动装配

    package zidongpeizhi;
    
    public class Address {
        private String city;
        private String home;
        public String getCity() {
            return city;
        }
        public void setCity(String city) {
            this.city = city;
        }
        public String getHome() {
            return home;
        }
        public void setHome(String home) {
            this.home = home;
        }
        @Override
        public String toString() {
            return "Address [city=" + city + ", home=" + home + "]";
        }
        
        
        
    
    }
    Address
    package zidongpeizhi;
    
    public class Car {
        private String name;
        private double price;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public double getPrice() {
            return price;
        }
        public void setPrice(double price) {
            this.price = price;
        }
        @Override
        public String toString() {
            return "Car [name=" + name + ", price=" + price + "]";
        }
    
    }
    Car
    package zidongpeizhi;
    
    public class Person {
        private String name;
        private Car cars;
        private Address address;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Car getCars() {
            return cars;
        }
        public void setCars(Car cars) {
            this.cars = cars;
        }
        public Address getAddress() {
            return address;
        }
        public void setAddress(Address address) {
            this.address = address;
        }
        @Override
        public String toString() {
            return "Person [name=" + name + ", cars=" + cars + ", address=" + address + "]";
        }
        
    
    }
    Person
    package zidongpeizhi;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import zidongpeizhi.Person;
    
    public class Main {
    
        public static void main(String[] args) {
            ApplicationContext c=new ClassPathXmlApplicationContext("zidongpeizhi.xml");
            Person pe=(Person) c.getBean("person");
            System.out.println(pe);
    
        }
    
    }
    Main
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
        
        <bean id="address" class="zidongpeizhi.Address" p:city="ningxia"
            p:home="guang"></bean>
        <bean id="car" class="zidongpeizhi.Car" p:name="dazhong"
            p:price="60"></bean>
            <!-- 
        <bean id="person" class="zidongpeizhi.Person" p:name="tom"
            p:address-ref="address" p:cars-ref="car"></bean>
             -->
            <!--byname 匹配javabean里的setter
            <bean id="person" class="zidongpeizhi.Person" p:name="tom"
            autowire="byName"></bean> 
            -->
            <!-- bytype ioc容器只能有一个匹配 -->
            <bean id="person" class="zidongpeizhi.Person" p:name="mmom"
            autowire="byType"></bean>
    
    </beans>
    .xml

    二、bean之间的关系

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
        <!-- 设置abstract="true"属性,只能被继承 -->
        <bean id="address" p:city="beijing" p:home="z" abstract="true">
        </bean>
        <!-- 继承address -->
        <bean id="address1" class="beanguanxi.Address" p:city="beijing"
            parent="address">
        </bean>
        <!-- 依赖 -->
        <bean id="car" class="beanguanxi.Car" p:name="baoma"
        p:price="100"></bean>
        <bean id="person" class="beanguanxi.Person" p:name="tom"
            p:address-ref="address1" depends-on="car">
        </bean>
    </beans>
    beanguanxi.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"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
        
        <!-- 导入外部文件 -->
        <context:property-placeholder location="classpath:mysql"/>
        <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>
        <!-- 
        <bean id="datasource"
            class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="user" value="root"></property>
            <property name="password" value="123456"></property>
            <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
            <property name="jdbcUrl" value="jdbc:mysql:///mmm"></property>
        </bean>
         -->
    </beans>
    shujuyuan.xml
    user=root
    password=123456
    driverclass=com.mysql.jdbc.Driver
    jdbcurl=jdbc:mysql:///mmm
    mysql.txt
    package shujuyuan;
    
    
    
    import java.sql.SQLException;
    
    import javax.sql.DataSource;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    
    public class Main {
        
        public static void main(String[] args)   {
            ApplicationContext c=new ClassPathXmlApplicationContext("shujuyuan.xml");
            DataSource datasource =(DataSource) c.getBean("datasource");
            try {
                System.out.println(datasource.getConnection());
            } catch (SQLException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
    
    }
    Main
  • 相关阅读:
    Spring 中出现Element : property Bean definitions can have zero or more properties. Property elements correspond to JavaBean setter methods exposed by the bean classes. Spring supports primitives, refer
    java定时器schedule和scheduleAtFixedRate区别
    hql语句中的select字句和from 字句
    使用maven搭建hibernate的pom文件配置
    Failure to transfer org.apache.maven:maven-archiver:pom:2.5 from http://repo.maven.apache.org/ maven2 was cached in the local repository, resolution will not be reattempted until the update interv
    对于文件File类型中的目录分隔符
    hibernate的事务管理和session对象的详解
    解决mac 中的myeclipse控制台中文乱码问题
    ibatis selectKey用法问题
    Java中getResourceAsStream的用法
  • 原文地址:https://www.cnblogs.com/MoooJL/p/12633857.html
Copyright © 2011-2022 走看看