spring 标签注入

Bean标签的常用属性
1.Id:属性值名称随便起,但是不能有特殊符号

2.Class:创建类对象的所在类的全路径

3.Name:与Id相似,但是名称可以用特殊符号(遗留的一个问题,不经常用)

4.scope:设置Bean的作用范围

Bean的作用范围

1.Singleton:单例(默认方式),只能创建一个对象

2.Prototype:多例的

3.request:在web项目中,将spring创建的对象存放在request域中

4.session:在web项目中,将spring创建的对象存放在sessiont域中

5.globalSession:将spring创建的对象存放在globalSession域中

<bean class="edu.slxy.property.PropertyDemo1" id="demo">
        <property name="username" value="地方"></property>
        <!-- <constructor-arg name="username" value="小孩"></constructor-arg> --><!-- name代表成员标量名,value:值 -->
     </bean>

实体类:

package edu.slxy.property;
 
public class PropertyDemo1 {
    private String username;
/*
 * 采用set方法注入这个需要注释掉,否者会报错
 *  public PropertyDemo1(String username) {
        this.username=username;
    }*/
    public void setUsername(String username) {
        this.username = username;
    }
    public void test (){
        System.out.println("username : "+username);
    }
}

注入对象

在这里插入图片描述
注入复杂类型属性值
配置文件

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

· 有参数构造注入
· p名称空间注入

配置文件:

<bean class="edu.slxy.property.PropertyDemo1" id="demo">
        <constructor-arg name="username" value="小孩"></constructor-arg><!-- name代表成员标量名,value:值 -->
     </bean>

实体类:

public class PropertyDemo1 {
    private String username;
 
    public PropertyDemo1(String username) {
        this.username=username;
    }
    public void test (){
        System.out.println("username : "+username);
    }
     
}

结果:

在这里插入图片描述

· 使用接口注入

在这里插入图片描述

Bean的实例化方式

1.使用类的无参构造函数创建(重点)
在这里插入图片描述

xml文件
在这里插入图片描述
工厂类

package edu.slxy.bean;
public class Bean2Factory{
    public static Bean2 getBean2(){
        return new Bean2();
    }
}

实体类

package edu.slxy.bean;
 
 
public class Bean2 {
    public void add(){
        System.out.println("add----------");
    }
}

测试类

package text;
 
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
import edu.slxy.bean.Bean2;
import edu.slxy.user.User;
 
public class TextDemo {
public static void main(String[] args) {
    ApplicationContext context=new  ClassPathXmlApplicationContext("bean.xml");
    Bean2 bean2=(Bean2) context.getBean("bean2");
    System.out.println(bean2);
    bean2.add();
    //user.add();
}
}

3.使用实例工厂创建

1.配置文件

<bean class="edu.slxy.bean.Bean3Factory" id="bean3Factory"> </bean>
     <bean factory-bean="bean3Factory" factory-method="getBean3" id="bean3"> </bean>

2.实体类

package edu.slxy.bean;
 
public class Bean3 {
    public void add(){
        System.out.println("add----------");
    }
}

3.工厂类

package edu.slxy.bean;
public class Bean3Factory{
    public  Bean3 getBean3(){
        return new Bean3();
    }
}

4.测试类

package text;
 
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
import edu.slxy.bean.Bean2;
import edu.slxy.bean.Bean3;
import edu.slxy.user.User;
 
public class TextDemo {
public static void main(String[] args) {
    ApplicationContext context=new  ClassPathXmlApplicationContext("bean.xml");
    Bean3 bean3=(Bean3) context.getBean("bean3");
    System.out.println(bean3);
    bean3.add();
    //user.add();
}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全新升级的Spring课程系列,2024年与您相伴成长!!!一、引言我们荣幸地宣布,将于2024年推出全新的Spring课程系列,旨在帮助初学者到进阶者一步步掌握Spring框架,并熟练应用于实际开发中。随着课程的进行,我们将逐步上传课件,为您提供丰富的学习资源,敬请持续关注。二、课程概览本课程是Spring全家桶课程的初识篇,课程将带您快速掌握Spring的核心知识点——AOP(面向切面编程)与IOC(控制反转),为您后续的学习打下坚实的基础。注意:该课程与【Spring框架解析】课程有所重叠,请不要重复购买哦!三、课程内容我们深知Spring Framework的核心原理对于学习和应用的重要性,因此本课程将聚焦于这些原理的实际应用。通过案例分析、项目实操等方式,让您在掌握核心知识点的同时,也能将其灵活应用于日常工作中。无论是面试准备还是项目开发,本课程都能为您提供有力的支持。四、Spring全家桶系列课程Spring全家桶生态圈汇聚了Spring框架及其众多相关组件、项目和模块,构成了一个强大的企业级Java应用程序开发、部署和管理解决方案。我们的Spring全家桶课程系列将涵盖这一生态圈的方方面面,从基础到进阶,让您全面掌握Spring的开发技巧和实践经验。本课程系列将聚焦于实操,让您通过实际操作加深对Spring框架的理解。如果您对Spring的原理等理论知识有浓厚兴趣,我们同时推荐您关注我们的【Spring框架解析】课程,以满足您更深入的学习需求。我们期待您的加入,共同在Spring的学习之路上成长和进步!Spring全家桶系列课程组成:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值