spring动手第一天,入门案例,spring创建对象,IOC原理

一、入门案例

装好了所有环境,跟着尚硅谷动手写了第一个测试类

引入类/包  alt+enter

运行一个方法,直接选中方法,然后run就行

public class TestSpring5 {


    @Test
    public void testAdd(){
        //1.加载Spring配置文件
        ApplicationContext context= new ClassPathXmlApplicationContext("bean1.xml");
        //2.获取配置创建的对象
        User user = context.getBean("user", User.class);
        //3.做输出
        System.out.println(user);//输出user地址
        user.add();//调用方法

    }

总结:

1.创建普通java工程,引入4个基本依赖加一个日志jar包

2.创建普通类(User),在里面创建普通方法

3.创建spring配置文件(bean1.xml),在里面用bean标签完成配置

4.写测试代码

二、反转控制

2.1传统的java调用对象方式

想在service里面调用add方法

class UserService(){
    void execute(){
        UserDao dao=new UserDao();
        dao.add();
    }
    //要在execute方法里面实例化UserDao的对象,再用对象调用方法。
    
}
class UserDao{
    void add() {
    }
}

特点:耦合度太高

2.2工厂模式解耦和

 

class UserService{
    void execute(){
        UserDao dao=UserFactory.getDao();
        dao.add();
    }


}
class UserDao{
    void add() {
    }
}

class UserFactory{
    public static UserDao getDao(){
        return new UserDao();
    }

特点:工厂(UserFactory)里面创建对象,service里面直接调用;降低了UserService跟UserDao的耦合度.

2.3 IOC降低耦合

(1).xml解析,工厂模式,反射(通过类的字节码文件,来操纵类中内容,得到.class文件)

(2)第一步 xml配置文件,创建配置的对象

    <bean id="user" class="com.company.User"></bean>

    第二步:有service类和dao类,创建工厂类

    

class UserFactory{
    public static UserDao getDao(){
        String classvalue=class属性值;//xml解析
        Class clazz=Class.forName(classvalue);//通过反射创建对象,class.forname("路径")
        return (UserDao) clazz.newInstance();
    }
}

特点:进一步降低耦合。通过工厂模式获取全类名,反射创建对象返回。这么做就是为了能把修改尽量放在配置文件中。

2.4 ioc接口

两个接口

2.4.1BeanFactory

   IOC容器基本实现,是spring内部的使用接口,不提供开发人员进行使用

   加载配置文件时,不会创建对象,在获取对象时才去创建对象。

//1.加载Spring配置文件
BeanFactory context= new ClassPathXmlApplicationContext("bean1.xml");
//2.获取配置创建的对象
User user = context.getBean("user", User.class);

第一步时不创建对象。

2.4.2ApplicationContext

  BeanFactory接口的子接口,提供更多更强大的功能,

//1.加载Spring配置文件
ApplicationContext context= new ClassPathXmlApplicationContext("bean1.xml");
//2.获取配置创建的对象
User user = context.getBean("user", User.class);

加载时配置文件时就会创建对象。

2.4.4ApplicationContext接口里的实现类

鼠标选中接口名。再按CTRL+h就能调出来上图

classpath 类的相对路径,

2.5 IOC操作Bean管理

2.5.1 什么时Bean管理

 (1).Spring创建对象

 (2).Spring注入属性

2.5.2 Bean管理有两种方式

(1).基于xml配置文件方式实现

(2).基于注解方式实现

2.5.3 操作

set方式注入和有参注入

(1)在Spring配置文件配置对象创建,配置属性注入

 在类中定义属性和set方法,在xml文件中完成对象创建和配置属性注入

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值