Spring介绍

Spring介绍

1.1 Spring概述

Spring框架是目前市面上最常用的框架之一,大多数的项目中使用的都是Spring全家桶相关的框架,Spring可以支持绝大多数市面上常用的第三方框架。Spring框架中的核心点在其中的IOC及AOP两个模块。

原生的开发过程中,程序员做的最多的事情是在创建对象,过程中一是需要创建很多的对象,二是对象过多的时候不好管理,对内存的影响也比较大,因此可以通过Spring提供的IOC及AOP将对象的创建及管理交给框架处理,程序员只需要关注业务操作。

2. Spring原理
2.1 原生的功能实现

需求:实现对用户的添加及删除操作

serDaoImpl userDao = new UserDaoImpl();
userDao.insertUser(new User());
userDao.deleteUser(1);

开发过程中需要频繁的创建对象,且需要考虑其生命周期的问题,维护比较麻烦

2.2 SpringIOC(控制反转)
2.2.1 Spring实现功能

需求:Spring实现用户的添加及删除操作

添加配置文件(applicationContext.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--
        配置实例对象
            id:唯一标识
            class:指定实体类所在的路径地址
    -->
    <bean id="userDao" class="dao.impl.UserDaoImpl"></bean>
</beans>

测试代码

//读取配置文件
ApplicationContext ac =
  new ClassPathXmlApplicationContext("applicationContext.xml");
//参数一:配置文件中的唯一标识 参数二:要接收的数据类型
IUserDao userDao = ac.getBean("userDao", UserDaoImpl.class);
userDao.insertUser(new User());
userDao.deleteUser(1);
2.2.2 SpringIOC概念

IOC(控制反转):将对象的创建及管理交给SpringIOC处理

DI(依赖注入):在程序运行期间,动态的将值进行注入(其实将对象的创建由编译时期放到了运行时期)

Spring的注入方式

1.无参构造+setter方法构造

<!--1.通过无参构造及setter方法构造对象-->
<bean id="user2" class="beans.User">
  <property name="age" value="12"/>
  <property name="name" value="haha"/>
</bean>

若实体类中未提供setter方法

2.有参构造注入

<!--2.通过构造器进行构造对象-->
<bean id="user3" class="beans.User">
  <constructor-arg name="age" value="13"/>
  <constructor-arg name="name" value="hehe"/>
</bean>
<!--指定参数下标-->
<bean id="user4" class="beans.User">
  <constructor-arg index="0" value="14" type="int"/>
  <constructor-arg index="1" value="hehe"/>
</bean>

3.静态工厂注入

<!--3.通过静态工厂注入对象-->
<bean id="user5" class="factory.UserFactory" factory-method="newInstance"></bean>
/**
  * 返回user对象
  * @return
  */
public static User newInstance(){
  return new User(15,"小溪");
}

4.动态工厂注入

<!--4.动态工厂注入对象-->
<bean id="dynamicFacoty" class="factory.DynamicUserFactory"></bean>
<!--
        factory-bean:指定要通过哪个工厂对象构造实例
        factory-method:指定要通过工厂中的哪个方法来构造实例
    -->
<bean id="user6" factory-bean="dynamicFacoty" factory-method="newInstance"></bean>
public User newInstance(){
  return new User(16,"小黑");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值