首页 > 其他分享 >Spring简单基础

Spring简单基础

时间:2022-10-14 16:12:55浏览次数:49  
标签:容器 构造方法 Spring 基础 bean ctx 简单 类型 注入

重要特点

  • 简化开发
    • Ioc
    • Aop
      • 事务处理

配置

1.在pom文件导入spring坐标
2.新建一个spring的xml配置文件,配置标签

  • bean标签配置bean
  • id属性表示给bean起名字
  • class属性表示给bean定义类型
<bean id = "XXX" class = "类地址"/>

3.在项目运行文件获取IoC容器

ApplicationContex ctx = new ClassPathXmlApplicationContext("XML文件名.xml");

4.获取bean
XXX xxx = (xxx)ctx.getBean("bean的id"); //获取对象
xxx.方法(); //调用方法
5.设置set方法(setter注入),spring通过set注入控制成员变量(以后实际中使用注解)
6.配置bean之间的绑定
(bean1的配置)
//ref:传引用数据类型。 value传基本数据类型。所引用的对象要在容器中。

bean
项目中可复用的重要对象。
实例化的三种方式
1.构造方法(常用)
在类中提供可访问的空参构造方法,private也可以。但是一定得有无参构造器,或默认的无参构造器。无参方法不存在则抛出异常BeanCreatException
2.通过静态工厂实例化bean
3.创建实例工厂对象,通过实例工厂对象实例化bean
控制bean的生命周期(不需要动手写)
在bean的配置标签上加上init-method="初始化方法名" destroy-method = "销毁方法名"
注册关闭钩子,容器启动后,在虚拟机关闭之前自动关闭容器
容器名.registerShutdownHook();
接口控制
注入依赖
setter注入
简单类型
在bean中定义引用类型属性,并提供一个set方法,在标签中value属性引入对象
引用类型
提供一个set方法,在标签中ref属性引入对象
构造器注入
简单类型
在bean中定义引用类型属性并提供可访问的构造方法,配置中使用constructor标签value属性注入对象。
引用类型
在bean中定义引用类型属性并提供可访问的构造方法,配置中使用constructor标签ref属性注入引用类型对象。

依赖自动装配
IoC容器根据bean所依赖的资源在容器中自动查找并注入到bean中的过程为自动装配
自动装配方式
按类型(常用)
在bean配置标签后面加上autowire = "byType" (要求容器中相同类型的bean唯一,推荐使用)


按名称(要求容器中具有指定名称的bean,因变量名与配置耦合,不推荐使用)
按构造方法(少用)
自动装配用于引用类型依赖注入,不能对简单类型进行操作
自动装配优先级低于setter注入和构造器注入,同时出现时自动装配失效

创建容器
类路径加载配置文件
ApplicationContext ctx = new ClassPathXml;ApplicationContext("applicationContext.xml");
文件路径加载配置文件
ApplicationContext ctx = new ClassPathXml;ApplicationContext("D:\applicationContext.xml");
加载多个配置文件
ApplicationContext ctx = new ClassPathXml;ApplicationContext("bean1.xml", "bean2.xml");

获取bean
BookDao bookDao = (BookDao) ctx.getBean("bookDao");

BookDao bookDao = ctx.getBean("bookDao", BookDao.class); //推荐

BookDao bookDao = ctx.getBean(BookDao.class);

纯注解方式
使用java类代替配置文件
在config类中使用注解
@Configuration
@ComponentScan("bean路径包名")
在运行程序中加载配置类
Applicationcontext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
@Autowired
自动装配注解(按类型)
基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据,因此无需提供setter方法。
建议使用无参构造方法创建对象(默认),如果不提供对应构造方法,请提供唯一的构造方法。
@Qualifier 和@Autowired搭配使用,指定装配bean。
@PropertySource({""})添加外部properties配置文件(路径仅支持单一文件配,多文件请使用数组格式配置,不允许使用通配符*)

注入第三方bean
新建配置类,使用@bean管理
简单类型
用@value注入成员变量
引用类型只需为bean定义方法设置形参即可,容器会根据类型自动装配对象

标签:容器,构造方法,Spring,基础,bean,ctx,简单,类型,注入
From: https://www.cnblogs.com/instser/p/16696923.html

相关文章

  • uni-app 4.12开发弹出层组件(一)基础架构
    弹框开发<template><viewclass=""><free-nav-bar:title="'微信(100)'":fixed='true'><templatev-slot="title"></template></free-nav-bar><!--......
  • vue3 + pinia实现简单购物车功能
    这个小例子是学习vue3与pinia状态管理工具时写的一个简单的购物车功能,它实现了从模拟接口(node.js的json-server提供)读取商品数据,到添加商品到购物车和购物车中删除商品......
  • SQL取数,简单查询与高级查询
    一张表中通常会包含很多字段,造成数据冗余,在做数据分析时,我们仅需要提取数据分析所需要的字段,这里就需要用到数据选取的知识点,同时还可以依据特定条件筛选。本文介绍数据提取......
  • SQL基础知识及建表语句
    什么是数据库?简单来说,数据库是容纳数据的一个"容器",正如文件柜用来存放资料,冰箱用来储存食物,手机相册用来保存照片,数据库的产生极大方便存储数据,数据库不仅可以存储数据,还能......
  • SpringBoot中Server层以及Mapper层常用注解
    4.Service层注解@Service注解一般写在业务层的接口实现类上,而不是接口上。4.1@Service@Service:@Service注解用于类上,标记当前类是一个service类,加上该注解会将当......
  • centos7 ansible的简单使用
    0、介绍ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令......
  • spring整合mybatis
    1.pom.xml中添加依赖<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.16.RELEASE</vers......
  • [译] PEP 255--简单的生成器
     我正打算写写Python的生成器,然而查资料时发现,引入生成器的PEP没人翻译过,因此就花了点时间翻译出来。如果在阅读时,你有读不懂的地方,不用怀疑,极有可能是我译得不到位。......
  • Python基础篇:某宝一键秒杀,毫秒级的精准度
    某宝秒杀,用毫秒级的精准度来抢购! 还记得前段时间情人节,各种产品活动秒杀。结果自然少不了被对象一番折磨 (注意:不是new出来的哈,也不是橡胶的,实实在在的女朋友) 于是乎彻......
  • springboot+resttemplat+请求拦截器
    参考:https://www.cnblogs.com/kaibindirver/p/15527052.html   创建配置文件来注册拦截器MyMvcConfig1packagecom.config;23importcom.controle.lanj......