首页 > 其他分享 >Spring框架

Spring框架

时间:2022-09-21 01:00:13浏览次数:67  
标签:容器 框架 Spring bean user IOC 注入

Spring框架

Java应用最广泛的框架,它的成功来源于理念,而不是技术本身

  • IOC:控制反转
  • AOP:面向切面编程
  • DI:依赖注入

非侵入式设计:
不需要继承框架提供的任何一个类,即使跟换框架,代码也不需要大改。

JavaBean

SpringBean是JavaBean的扩展,现在的JavaBean作为一个对象,提供set、get方法
SpringBean只需要为接收设置值注入set方法

Spring优势:

  • 低侵入
  • 声明式事务
  • 方便继承其他框架
  • 提供了Javaweb三层的每一层的解决方案

Spring能帮我们干什么?:
装修:
1.自己干 ×
2.找装修公司 √

IOC容器:

控制反转
可以把对象放进容器中,交给Spring去管理,并且还是单例的

	把对象放进容器中,对象一旦放入容器中,这个对象在我当前的项目中就可以共享,而且默认还是单例的
	id:这个对象在IOC容器中的唯一标识
    	class:要放到spring的IOC容器中的全类名
	<bean id="user" class="com.jsoft.entity.User">

把容器中的对象拿出来

 public void IOCTest() {
 加载Spring配置文件
    ApplicationContext ioc = new ClassPathXmlApplicationContext("application.xml");
    这个user对象是从ioc容器中获取到的
    User user = (User)ioc.getBean(User.class);
    user.say();
    System.out.println(user);
}

属性注入:

ref:依赖,当使用ref属性,依赖于当前容器中已经存在的bean,进行属性的注入
scope:定义bean的作用域

  • prototype:原型
  • singleton:单例(默认)
  • request:一次请求
  • session:一次会话

1.构造器注入:根据参数名,根据索引位置,根据参数类型

	<bean id="user" class="com.jsoft.entity.User">
		<constructor- arg value="jsoft" name="name"></constructor-arg>
	</bean>
	调用user类中的有参构造参数

2.setter注入:调用set方法来进行属性注入(常用)

	<bean id="user" class="com.jsoft.entity.User">
		<property name="name" value="JSOFT"></ property>
	</bean>

更多复杂的setter注入

  • 自定义的数据类型(address):

      如果bean要注入的是一个对象,那这个对象也要先注册到IOC容器中
      <bean id="address" class="com.jsoft.entity. Address">
      	<property name="info" value="高新区"></ property>
      </ bean>
      
      <bean id="user" class="com.jsoft.entity.User">
      <property name="name" value="JSOFT"></ property>
      依赖当前容器中存在bean来注入
      <property name="address" ref="address"></property>
      </bean>
    
  • 数组

      <property name="hobbies">
          <array value-type="java.lang.String">
              <value>篮球</value>
              <value>足球</value>
          </array>
     </property>
    
  • List集合

      <property name="duties">
      	<list value-type="java.lang.S
         	<value>董事长</value>
      	  <value>总经理</value>
     	</list>
      </property>
    
  • set集合

        <property name="carts">
            <set value-type="java.lang.String">
      	   <value>韭菜</value>
               <value>鸡蛋</value>
          	</set>
     </property>
    
  • Map集合

      <property name="map">
       <map>
            <entry key="父亲" value="马云"></entry>
            <entry key="母亲" value="张瑛"></entry>
          </map>
      </property>
    
  • Properties

      <property name="properties">
       <props>
      	    <prop key="阿里巴巴">达摩院</prop>
       </props>
      </property>
    

自动装配

autowire:自动装配
byName:根据属性名去IOC容器中找名字相同的bean进行自动注入
byType:根据属性的类型自动注入

	<bean id="user" class="com.jsoft.entity.User" autowire="byName">

注解:自动装配

context: component-scan base-package="com.jsoft.entity"</context:component-scan>
并且在类中加上
@Autowirit
强制注解其他
@Qualifier ( " address1")
@Resource

标签:容器,框架,Spring,bean,user,IOC,注入
From: https://www.cnblogs.com/figh466/p/16714193.html

相关文章

  • 2022-9-20 Spring学习笔记
    目录1.Spring1.1JavaBean1.2Spring的优势1.3将对象放入IOC容器配置类赋值的方法根据不同类型的赋值作用域自动装配注解1.4类型转换1.SpringSpring框架是Java应用最广......
  • 开源直播课丨高效稳定易用的数据集成框架——ChunJun类加载原理与实现
    一、直播介绍前几期,我们为大家分享了ChunJun的数据还原、Hive事务表及传输模块的一些内容,本期我们为大家分享ChunJun类加载原理与实现。本次直播我们将从Java类加载器解......
  • Spring框架:第四章:Spring管理数据库连接池
    6.1、Spring配置管理数据库连接池对象(重点)导入jar包druid-1.1.9.jarmysql-connector-java-5.1.37-bin.jar配置信息:<!--配置数据库连接池--><beanid="dataSource"clas......
  • 将SpringBoot项目发布到Docker
    1.创建springboot项目packagecom.test.demo.controller;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.GetMap......
  • Vue中使用js-audio-recorder插件实现录音功能并实现上传Blob数据到SpringBoot后台接口
    场景浏览器web端实现语音消息录制并在录制结束之后将其上传到后台接口。若依前后端分离版手把手教你本地搭建环境并运行项目:https://blog.csdn.net/BADAO_LIUMANG_QIZHI......
  • Spring Boot 操作 Redis
    目录参考资料说在前面步骤1.新建Maven项目并引入spring-boot-starter-data-redis2.编写application.yml3.编写缓存服务和Controller4.启动类5.测试参考资料官方......
  • TP6框架--CRMEB学习笔记:布置后台管理框架+配置路由
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助最近在研究一个基于TP6的框架CRMEB,这里分享下我的开发心得首先在上篇文章中,我们安装了CRMEBphp接口项目,需......
  • SpringMVC学习笔记(四)
    拦截器拦截器需要实现HandlerInterceptor接口然后配置到IOC文件中在mvc:interceptors标签中配置拦截器bean或ref这种方式会拦截所有路径在mvc:interceptors标签中配置......
  • Spring事务传播机制
    传播性行为分为以下几种PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务......
  • Spring事务隔离级别
    事务隔离级别ISOLATION_DEFAULT这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别。ISOLATION_READ_UNCOMMITTED这是事务最低的隔离级别......