Spring5-idea版学习

**

一、Spring综述

1.1 jdk环境依赖

从Spring Framework 5.1开始,Spring需要JDK 8+ (Java SE 8+),并提供对JDK 11 LTS的开箱即用支持。建议将Java SE 8 update 60作为Java 8的最低补丁版本,但通常建议使用最新的补丁版本。

1.2 Spring介绍

spring分为许多模块,应用可以选择他们需要的模块。它的核心模块是corecontainer(也就是核心容器),包括配置模块和DI依赖注入。除此之外,Spring框架还为不同的应用程序体系结构提供基础支持,包括消息传递、事务数据和持久性以及web。

二、IOC理论推导

2.1 前述

UserDao接口
UserDaoImpl实现类
UserService业务接口
UserServiceImpl业务实习类

基于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
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="..." class="...">  
        <!-- collaborators and configuration for this bean go here -->
    </bean>

    <bean id="..." class="...">
        <!-- collaborators and configuration for this bean go here -->
    </bean>

    <!-- more bean definitions go here -->

</beans>

2.2 第一种业务调用:

在实现类中:

private  UserDao userDao = new UserDaoMysqlImpl();

在测试实现类中:

UserService userService = new UserServiceImpl();
userService.getUser();

在我们之前的业务中,用户的需求可能影响我们原来的代码,我们需要根据用户的需求去修改原代码!
如果程序代码量十分大,修改一次的成本代价十分昂贵!

2.3 第二种业务调用:

我们使用一个Set接口实现
在实现类中:

private  UserDao userDao;
public void setUserDao(UserDao userDao) {
    
    
        this.userDao = userDao;
    }

在测试实习类中:

((UserServiceImpl) userService).setUserDao(new UserDaoMysqlImpl());
userService.getUser();  
}

之前,程序是主动创建对象!控制权在程序员手上。
使用了set注入后,程序不再具有主动性,而是变成了被动的接受对象!
这种思想,从本质上解决了问题,我们程序员不再去管理对象的创建了。系统的耦合性大大降低;可以更加专注在业务的实现上!这是IOC的原型!

三、IOC创建对象的方式

3.1 无参构造创建对象

在使用配置文件来创建对象时,默认的是无参构造,在实体类中,无参构造一般不会写出来。只有在是实体类中有了有参构造,无参构造猜会无效。

3.2 使用有参构造来创建对象

第一种:
下标赋值(index)

<bean id="user" class="com.liao.pojo.User">
    <constructor-arg index="0" value="自己赋值"></constructor-arg>
 </bean>

第二种:
类型(type,这里不建议使用这种方式)

<bean id="user" class="com.liao.pojo.User">
  <constructor-arg 
  type="java.lang.String" value="liaopenghui">
  </constructor-arg>
 </bean>

第三种:
参数名(name)

<bean id="user" class="com.liao.pojo.User">
     <constructor-arg name="name" value="自己赋值"></constructor-arg>
</bean>

总结:在配置文件加载的时候,容器中管理的对象就已经初始化了!

四、Spring配置

4.1 别名:

<bean id="user" class="com.liao.pojo.User">
   <constructor-arg name="name" value="自己赋值"></constructor-arg>
   </bean>

如果添加了别名,我们也可以使用别名获取到这个对象

<alias name="user" alias="user2"></alias>

4.2 Bean的配置:

  • id: bean 的唯一标识符,也就是相当于我们学的对像名
  • class: bean 对象所对应的全限定名: 包名+类型
  • name: 也是别名,而且name 可以同时取多个别名,可以通过空格、逗号以及分号分开
 <bean id="userT" class="com.liao.pojo.UserT" name="userT2 userT3">
     <property name="name" value="liaopenghui"></property>
 </bean>

4.3 import:

import,一般用于团队开发使用,它可以将多个配置文件,导入合并为一个。
假设,现在项目中有多个人开发,这三个人负责不同的类开发,不同的类需要注册在不同的bean中,我们可以利用import, 将所有人的beans.xml合并为一个总的!
列如有这么几个xml配置文件:
beans1.xml
beans2.xml
beans3.xml
将这三个配置文件同时导入一个总的配置文件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
        https://www.springframework.org/schema/beans/spring-beans.xsd">
        
	   <import resource="beans1.xml"></import>
       <import resource="beans2.xml"></import>
       <import resource="beans3.xml"></import>

</beans>

使用的时候,直接使用总的配置就可以了。
想要详细了解更多Spring,这里建议大家去官方文档学习。

五、心声

Sping5后续学习会相继发布,这是小白第一次些文章,我会继续努力加油,写出优秀的文章。

猜你喜欢

转载自blog.csdn.net/qq_41409803/article/details/115409125