Spring笔记-核心思想一(三)

三、Spring的核心思想

1.控制反转(IOC)

(1)概念

控制反转是Spring框架的核心思想之一,主要用于解耦。IOC是指将创建对象的控制权转移给Spring框架进行管理。由Spring框架根据配置文件或注解等方式,创建bean对象并管理各个bean对象之间的依赖关系。使对象之间形成松散耦合的关系,实现解耦。

(2)控制反转的实现方式

XML方式
语法
<bean id=”对象名” class=”类的全名”></bean>
创建方式
方式一:直接创建对象
<bean id="userService" class="com.service.UserService"></bean>
方式二:工厂模式创建对象(了解)

先创建一个类,写一个普通方法,用来创建对象

public class MyFactory(){

    public UserService getUserService(){

        return new UserService();

    }

}

然后,通过这个工厂创建对象

<bean id="myFactory" class="com.factory.MyFactory"></bean>

<bean id="userService" factory-bean="myFactory" factory-method="getUserService"></bean>
方式三:静态工厂创建对象(了解)

先创建一个类,写一个静态方法,用来创建对象

public class MyFactory(){

    public static UserService getUserService(){

        return new UserService();

    }

}

然后,通过这个静态工厂创建对象

<bean id="userService" factory-bean="com.factory.MyFactory" factory-method="getUserService"></bean>
bean标签常用的属性

id: 对象名称

name:需要创建对象的全类名

factory-bean:工厂名称

factory-method:工厂方法

lazy-init:懒加载(true开启懒加载/fales关闭懒加载)

init-method:初始化方法

destroy-method:销毁方法

scope:创建对象范围(singleton单例(默认)/prototype多例)

注解方式
@Component
public class UserService{

}

(3)依赖注入的方式

XML方式
手动注入
set注入
<bean id="userService" class="com.service.UserService">

    <property name="userDao" ref="userDao"></property>

    <property name="age" value="10"></property>

</bean>

<bean id="userDao" class="com.dao.userDao"></bean>
构造注入
<bean id="userService" class="com.service.UserService">

    <constructor-arg name="userDao" ref="userDao"></constructor-arg>

    <constructor-arg name="age" value="10"></constructor-arg>

</bean>

<bean id="userDao" class="com.dao.userDao"></bean>
自动注入
set注入

byName注入

<bean id="userService" class="com.service.userService" autowire="byName"></bean>

byType注入

<bean id="userService" class="com.service.userService" autowire="byType"></bean>

构造注入

<bean id="userService" class="com.service.userService" autowire="constructor"></bean>
注解方式
@Component
public class UserService{
    private UserDao userDao;
    @Autowired
    public void setUserDao (UserDao userDao) {
        this.userDao= userDao;
    }
}

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值