栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring5学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring5学习

1.IOC容器

控制反转:把对象的创建和对象之间的调用过程都交给Spring进行管理,目的是为了降低耦合度;

IOC思想基于IOC容器完成,IOC容器底层就是对象工厂

建议放到容器中的对象:dao类,service类,controller类,工具类,spring容器中的对象都是单例,容器中每个对象只存在一个;

不建议放到容器中的对象:

  • 实体类对象,实体类对象的数据来自数据库,应该是在程序运行过程中创建
  • servlet,filter,listener,这些类应该由tomcat负责创建与调用

将对象放到容器中有两种方式

  • 在xml配置中添加bean标签
  • 使用注解
2.Bean标签创建容器对象

通过容器使用对象:

  • 在resources目录下配置mybeans.xml




    
    
    
    

  • 创建spring容器,通过容器获取对象
//从类路径target/classes下加载xml文件,创建容器,ApplicationContext就是spring容器
//在创建完spring容器后,spring会创建配置文件中的所有对象,默认调用的是类的无参构造
        ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
        //从容器中获取某个类
        WarMovieInterImpl warMovie =context.getBean("WarMovie",WarMovieInterImpl.class);
        warMovie.seeMovie();
//获取非自定义类
Date date=(Date)context.getBean("myDate");
3.依赖注入(Dependency Injection)DI

bean实例在调用无参数构造方法创建对象后,就要对bean对象的属性进行初始化,初始化是由容器完成的,称为依赖注入,根据注入的方式分为set注入,构造注入;

set注入(设值注入):spring调用类的set方法,在set方法可以实现属性的赋值,实际开发中80%都是使用该方式;

//简单类型

    
    
    


//引用类型,property里面用ref="beanid"

        
        
        


        
        
        
        
        

构造注入:spring调用类的有参构造方法,创建对象,在构造方法中完成属性的赋值;


        
        
        
        
        
    
public Player(String pName, int age, boolean sex,Company com) {
    this.pName = pName;
    this.age = age;
    this.sex = sex;
    this.com= com;
}

用构造注入获取file对象


    
    

4.引用类型的自动注入

实际开发中可能会碰到一个类里面有多个引用属性,如果逐个配置标签会导致代码冗余,所以spring提供了一种自动注入引用类型的功能,该功能只能为引用属性自动赋值;

  • byName(按名称)方式:如果java类中引用类型的属性名与bean中的类的id一致,且数据类型一致,那么spring就能对该属性进行自动注入

    
    
    public class WarMovieInterImpl implements MovieInter {
    
        private Player player;
        private Director director;
        ...
    }
    
    
        
        
        
        
    
    
        
        
        
        
    
    
  • byType(按类型)方式:如果java类中引用类型的属性类型与bean中的类的class是同源的,那么spring就能对该属性进行自动注入

    这里的同源指的是:

    • java类中引用类型的属性类型与bean中的类的class同一个类;
    • java类中引用类型的属性类型是bean中的类的class的父类;
    • java类中引用类型的属性类型与bean中的类的class是接口与实现类的关系;


    
    
    
    

public class WarMovieInterImpl implements MovieInter {

    private Player player;
    ...
}
public class PlayerSon extends Player{

    public PlayerSon(String pName, int age, boolean sex, Company com) {
        super(pName, age, sex, com);
        System.out.println("player子类");
    }
}
5.多配置文件

如果项目较为庞大,可以使用多个配置文件

  • 可以按功能模块,一个模块一个配置文件
  • 按类的功能,数据库相关一个配置文件,事物功能一个配置文件,service功能一个配置文件…

    
    

    



    
6.注解方式的依赖注入
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/874171.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号