A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wk020510 初级黑马   /  2019-4-14 08:41  /  836 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

耦合:一个类中使用另一个类,当这个类不使用,对应的类代表必须改动

javaBean:用java语言编写可重复组建。

1. 需要一个配置文件来配置service和dao【配置内容  标识=类名称 key=value】
2. 通过读取配置文件内容反射创建对象【配置文件可用xml或properties】

IOC:解决程序的耦合

环境搭建:maven环境下,导入依赖架包,建立配置文件xml,设置管理对象

在表现层创建核心容器(classpathxmlapplicationcontest),获取对象,

    ApplicationContext三个常用实现类;、
    ClassPathXMLApplicationContext:加载类路径下的配置文件
    FileSystemXMLApplicationContext:可用从磁盘加载文件
    AnnotationConfigApplicationContext:注解

beanFactory:多例对象:

ApplicationContext:单例对象(在配置文件可以设置(默认)单例或多例):伴随对象

创建3中方式:默认无参数

    默认方法,直接创建实现类对象
    <bean id="实现类名称" class="cn.itcast.dao.实现类路径"></bean>
    [实现类名称]这个名写在ClassPathXMLApplicationContext()中;
   
    普通工厂创建;在一个类中某个方法,该方法中创建实现类对象
    <bean id="该工厂名称" class="该工厂的类路径"></bean>
    <bean id="方法中实现类的名称" factory-bean="该工厂名称" factory-method="该工厂类中的方法"></bean>
   
   
    静态工厂创建,该工厂的静态方法中,创建实现类对象
    <bean id="实现类名称" class="该工厂的类路径" factory-method="方法名"></bean>



DI依赖注入

    在bean.xml中:  [set注入]使用标签property
    <bean id="serviveImpl" class="cn.itcast.service.serviceImpl" >id 最好写上接口的名称
    <property name="daoimpl" ref="daoImpl"></property>
        name的值一定要和【Set方法名称】一致!!!!
    </bean>
    <bean id="daoImpl" class="cn.itcast.dao.daoImpl"></bean>
    在service中
    pulic class ServiceImpl{
            private Dao daoimpl;
    设置上daoimpl的set方法
            public void method(){
                    daoimpl.demo();
            }
    }               

构造注入

在实现类中创建一个有参构造(全参):经常变换的数据,就不适合了

在配置文件bean。xml中:使用标签:constructor-arg

    <baen id="serviceimpl" class="cn.itcast.">
    <constructor-arg name="" value=""></constructor-arg>
    <constructor-arg name="" value=""></constructor-arg>
    <constrcotor-arg name="birthday" ref="XX"></constrcotor-arg>
        。。。  。。。ref引用对象
    </baen>
    <baen id="XX" class="java.util.Date"></baen>

在注入数据(获取bean对象)时,注入数据必须全部赋值,否则无法成功;但是:改变了bean对象的实例化方式,即便不用,也必须创建;


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马