Spring学习笔记-第一天:Spring项目创建/配置文件及依赖注入/相关API

一、Spring项目创建过程

 

  1. 导入坐标:设置依赖
  2. 创建Bean: 如:创建userDao和userDaoImpl
  3. 创建applicationContext.xml(约定俗成)
  4. 在配置文件中配置 :<bean>标签中配置 id
  5. 创建对象getBean 提供当前bean的id

二、Bean标签范围

  • singleton 默认 单例

  • prototype 多例

  • request

  • session

  • global session

  主要使用singleton和prototype,其中他们在创建过程中有区分

  若使用singleton,则在加载配置文件时创建Bean的实例化个数为一个

ApplicationContext app=new ClassPathXmlApplicationContext("applicationContext.xml");

  

  若设置成prototype,则在每次getBean时都创建一个

  Bean的生命周期:对象创建,对象运行,对象销毁

  singleton 应用加载时即创建 prototype当使用时创建前者一直活着,后者不用时被gc回收

  Bean生命周期配置

 

  init-method:制定类中的初始化方法名称

 

  destroy-method:制定类中销毁方法名称

  Bean实例化三种方式

  1. 无参构造方法实例化
  2. 工厂静态方法实例化
  3. 工厂实例方法实例化

  静态可以直接调用,动态的需要先生成工厂对象bean,再设一个bean调用工厂对象

三、Bean依赖注入

IOC的具体体现。

控制反转:把对象的创建交给了Spring。IOC解耦只是降低依赖关系。业务层和持久层的依赖关系,用Spring来维护。

service需要内部dao,需要dao依赖注入

UserDao注入到UserService

  1. 构造方法
  2. set方法

  Set方法实现依赖注入

   1.设置bean id,class地址,再通过property设置依赖注入,如

  

<bean id="userService" class="com.itheima.service.impl.UserServiceImpl">
        <property name="userDao" ref="userDao"></property>
 </bean>

  2.p命名空间注入

  修改并添加p标签

  

xmlns="http://www.springframework.org/schema/beans"->xmlns:p="http://www.springframework.org/schema/p" 后可以使用p属性 p:

 

   有参构造注入

  在service中,通过引用private,设置Constructor

   

  set注入是引入setter,构造注入是选择Constructor

  在bean中 constructor中引用

  Bean依赖注入的数据类型

  1. 普通数据类型:<property>中不用ref,而是用value
  2. 其他数据类型,集合,列表,图等,既不用value也不用ref,而是进内部子标签

 

   

<property name="strList">
    <list>
        <value>aaa</value>
        <value>bbb</value>
        <value>ccc</value>
        <value>ddd</value>

    </list>
</property>

  引入其他配置文件

  实际开发中,Spring配置很多,所以可以将部分配置拆解到其他配置文件中,而在Spring主配置文件      通过import标签进行加载。

  可以按功能分,也可以按dao,service这样分,看情况

小总结:Spring的重点配置

 

<bean>标签

 

  id属性:在Bean实例的唯一标识

 

  class属性:要实例化的Bean的全限定名(地址)

 

  scope属性:Bean的作用范围 singleton prototype 创建时机

 

  <property> 依赖注入

 

    name属性:要注入的属性名称

 

    value属性:引用的普通属性值

 

    ref属性:注入的对象引用值

 

    <list>标签

 

    <map>标签

 

  <constructor-arg>标签,构造注入,内部和上面一样

 

<improt>标签:导入其他的Spring配置文件

四、Spring的相关API

 

applicationContext:接口类型,代表应用上下文,可以获得其实例获得Spring容器中的Bean对象

 

ApplicationContext的实现类

 

1. ClassPathXmlApplicationContext:classpath-类加载路径Xml代表加载的类型,再应用上下文,从类的根路径下加载配置文件

 

2. FileSystemXmlApplicationContext:从磁盘路径上加载配置文件,配置文件可以在磁盘任意位置

对比:

ApplicationContext app=new ClassPathXmlApplicationContext("applicationContext.xml");
ApplicationContext app=new FileSystemXmlApplicationContext("E:\\ideaWorkSpace\\Spring\\itheima_spring_ioc\\src\\main\\resources\\applicationContext.xml");

 

 

3. AnnotationConfigApplicationContext:当使用注解配置容器对象时,需要使用此类类创建spring容器。它用来读取注解。

 

getBean()方法使用。两种使用getBean的方式

UserService userService = (UserService) app.getBean("userService");根据id进行获取
UserService userService = app.getBean(UserService.class);根据类型进行获取

若存在两个相同类型的,前者可以区分开,但后者不能,运行会报错

Spring的重点API

1. 怎么创建应用上下文对象(三种)

2. getBean怎么用(两种)

 

今日idea快捷键

 

setting:ctrl+alt+s

 

ProjectStructure:ctrl+shift+alt+s

 

generate:alt+insert

 

输出:sout;

 

快速生成返回值:alt+enter

 

 

posted @ 2021-04-28 23:26  东风应笑我  阅读(199)  评论(1)    收藏  举报