• 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
  • 相关阅读:
    转:asp.net mvc下的多语言方案 包含Html,Javascript和图片
    转:在ASP.NET MVC中通过URL路由实现对多语言的支持
    转:C# lock用法
    转:SQL 关于apply的两种形式cross apply 和 outer apply
    在ASP.NET MVC 中获取当前URL、controller、action
    转:Newtonsoft.Json高级用法
    转:jQuery插件开发全解析
    转:ASP.NET MVC 多语言实现技巧 最简、最易维护和最快速开发
    转:前端js、jQuery实现日期格式化、字符串格式化
    转:.Net内存泄露原因及解决办法
  • 原文地址:https://www.cnblogs.com/MoooJL/p/12633857.html
Copyright © 2020-2023  润新知