Spring快速复习--配置文件(一)

简介: Spring快速复习--配置文件(一)

Spring的配置文件


Bean 标签基本配置


使用Spring来创建对象,每一个对象在Spring中都被称为bean,这句是重点

  • 用来配置对象交由 Spring 来创建
  • 默认情况下它( Spring ) 调用的是类中的无参构造函数,如果没有无参构造函数则不能创建成功

基本属性:


id:Bean 实例在 Spring 容器中的唯一标识 
class:Bean 的 全限定名称 / 全包名


Bean 标签范围配置


  • scope:指对象的作用范围,取值如下:

取值范围                说明

singleton      单例的

prototype       原型模式

默认情况的话就是属于单例模式

下面看图例

image.png


为什么bean默认为单例


为了提高效率!

比如你每次调用dao对象执行里面的方法,dao对象我们需要每次都重新创建吗?不需要,因为都是同一个对象只是每次调用对象里不同的方法罢了,所以Sping里的bean默认都是单例的。

那么哪些bean适合交给ioc容器管理呢?

  • 表现层对象
  • 业务层对象
  • 数据层对象
  • 工具类对象

因为这些以上对象可以重复利用,交给ioc可以提高效率

不适合交给容器进行管理的bean

  • 封装实体的域对象 每个实体对应数据库一条数据,这个自然是不能交给ioc来管理的


Bean 生命周期配置


**字如其名,就是英译汉过来的意思 **

  • init-method:指定类中的初始化方法名称
  • destory-method:指定类中销毁方法名称

在要注入的bean中,可以写bean的初始化方法和销毁方法

在spring的配置文件中进行指定

下面看图例

image.png

image.png


Bean 实例化的三种方式


无参构造方法实例化


public class UserDaoImpl implements UserDao {
    public UserDaoImpl(){
        System.out.println("Dao ------ 无参构造方法......");
    }
}
<?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">
    <bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl"></bean>
</beans>
     
        
public class UserDaoDemo {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("application.xml");
        UserDao userDao = (UserDao) app.getBean("getUserDao");
        userDao.save();
    }
}
通过无参构造函数实例化对象


工厂静态方法实例化


image.png


public class UserDaoImpl implements UserDao {
    public UserDaoImpl(){
        System.out.println("Dao ------ 无参构造方法......");
    }
}
<!--    getUserDao在StaticFactory中是静态方法,所以可以直接获取-->
<?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">
    <bean id="getUserDao" class="com.heima.factory.StaticFactory" factory-method="getUserDao">
    </bean>
public class UserDaoDemo {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("application.xml");
        UserDao userDao = (UserDao) app.getBean("getUserDao");
        userDao.save();
    }
}
通过无参构造函数实例化对象
save running.......


工厂实例方法实例化


public class StaticFactory {
    public UserDao getUserDao(){
        return new UserDaoImpl();
    }
}
public class UserDaoImpl implements UserDao {
    public UserDaoImpl(){
        System.out.println("Dao ------ 无参构造方法......");
    }
}
<!--    getUserDao在StaticFactory中是静态方法,所以可以直接获取-->
<?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">
<!--动态Bean工厂需先配置 动态工厂,再根据动态工厂名指定工厂需执行的方法-->
<bean id="getUserDao" class="com.heima.factory.StaticFactory"/>
<bean id="getUserDaoBean" factory-bean="getUserDao" factory-method="getUserDao"/>
public class UserDaoDemo {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("application.xml");
        //这里获取的bean为getUserDaoBean
        UserDao userDao = (UserDao) app.getBean("getUserDaoBean");
        userDao.save();
    }
}
通过无参构造函数实例化对象
save running.......


Spring 的重点配置


id 属性:在容器中 Bean 实例的唯一标识,不允许重复

class 属性:要实例化的 Bean 的全限定名

scope 属性:Bean 的作用范围,常用是 singleton(单例模式)和 prototype(原型模式/多例模式)

<property>  标签:属性注入

name 属性:属性名称

value 属性:注入的普通属性值

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

<constructor-arg>有参结构体 set 注入 标签      

<constructor-arg name="userDao" ref="set 方法 - set 转 小驼峰"></constructor-arg>

<import>标签:导入其他的 Spring 的分文件 如下,导入一个xml文件:

<import resource="applicationContext-user.xml"></import>

对应的实例,都放到一张图上了,需要的可以自取。到后面其实还是用注解为多配置文件形式了解即可。

image.png

image.png



相关文章
|
3月前
|
Java Spring
Spring boot 运行服务jar外配置配置文件方式总结
Spring boot 运行服务jar外配置配置文件方式总结
492 0
|
10天前
|
消息中间件 NoSQL 安全
(转)Spring Boot加载 不同位置的 application.properties配置文件顺序规则
这篇文章介绍了Spring Boot加载配置文件的顺序规则,包括不同位置的application.properties文件的加载优先级,以及如何通过命令行参数或环境变量来指定配置文件的名称和位置。
|
2月前
|
Java Spring 传感器
AI 浪潮席卷,Spring 框架配置文件管理与环境感知,为软件稳定护航,你还在等什么?
【8月更文挑战第31天】在软件开发中,配置文件管理至关重要。Spring框架提供强大支持,便于应对不同环境需求,如电商项目的开发、测试与生产环境。它支持多种格式的配置文件(如properties和YAML),并能根据环境加载不同配置,如数据库连接信息。通过`@Profile`注解可指定特定环境下的配置生效,同时支持通过命令行参数或环境变量覆盖配置值,确保应用稳定性和可靠性。
41 0
|
2月前
|
XML Java 数据库连接
深入解析 Spring 配置文件:从基础到高级
【8月更文挑战第3天】Spring配置文件是构建与管理Spring应用的核心,它涵盖了从基础到高级的各种配置技巧。基础配置采用`.xml`格式定义Bean及其依赖;中级配置包括设置Bean作用域及引入属性文件;高级配置则涉及AOP、事务管理和与其他框架的整合。熟练掌握这些配置能帮助开发者构建出更为灵活且易维护的应用系统。
|
3月前
|
存储 安全 Java
Spring Boot中的配置文件加密
Spring Boot中的配置文件加密
|
5月前
|
Java 数据库连接 API
【Spring】1、Spring 框架的基本使用【读取配置文件、IoC、依赖注入的几种方式、FactoryBean】
【Spring】1、Spring 框架的基本使用【读取配置文件、IoC、依赖注入的几种方式、FactoryBean】
87 0
|
4月前
|
XML 运维 Java
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
42 1
|
5月前
|
Java 容器 Spring
Spring的加载配置文件、容器和获取bean的方式
Spring的加载配置文件、容器和获取bean的方式
48 3
Spring的加载配置文件、容器和获取bean的方式
|
3月前
|
Java Spring
解析Spring Boot中的配置文件与外部化配置
解析Spring Boot中的配置文件与外部化配置
|
3月前
|
存储 Java Spring
Spring Boot中的应用配置文件管理
Spring Boot中的应用配置文件管理
下一篇
无影云桌面