专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

注解在Spring中的运用(对象获取、对象单例-多例、值的注入、初始化-销毁方法、获取容器)

1、注解的方式获取对象

(1)导包:

121_1.png

(2)书写配置文件(要保证已经导入了约束):

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="http://www.springframework.org/schema/beans" xmlns:util="http://www.springframework.org/schema/util"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="pers.zhb.domain"></context:component-scan>
</beans>

配置文件的核心就一句话,它的作用是:扫描pers.zhb.domain包下的所有类的注解。

(3)创建Student对象,并在里面添加注解:

import org.springframework.stereotype.Component;
@Component("student")
public class Student {
    private String snum;
    private String sname;
    private String sex;
    private Course course;
    public Student(String snum, String sname, String sex, Course course) {
        this.snum = snum;
        this.sname = sname;
        this.sex = sex;
        this.course = course;
    }
    public Course getCourse() {
        return course;
    }

    public void setCourse(Course course) {
        this.course = course;
    }

    public Student(){
        System.out.println("Student对象创建了!");
    }
    public String getSnum() {
        return snum;
    }

    public void setSnum(String snum) {
        this.snum = snum;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
    @Override
    public String toString() {
        return "Student{" +
                "snum='" + snum + '\'' +
                ", sname='" + sname + '\'' +
                ", sex='" + sex + '\'' +
                ", course=" + course +
                '}';
    }
}

该注解中的参数student相当于里面的name,通过student可以获取到Student对象。

(4)创建测试类:

public class Test {
    public void test1(){
        ApplicationContext applicationContext=new
                ClassPathXmlApplicationContext("applicationContext.xml");//创建容器对象
        Student student  =(Student)applicationContext.getBean("student");
        student.setSname("zhai");
        System.out.println(student);
    }
    public static void main(String[] args){
        Test test=new Test();
        test.test1();
    }
}

121_2.png

(5)注解的四种方式:

121_3.png

第二个可以用于Service层对象的创建,第三个web层,第四个dao层。这四个注解只是名字不同而已,功能是相同的。

2、对象的单例 / 多例

(1)单例对象:

121_4.png

测试:

Student student1  =(Student)applicationContext.getBean("student");
        Student student2  =(Student)applicationContext.getBean("student");
        System.out.println(student1==student2);

返回结果为true,说明创建的是同一个对象。

(2)多例对象:

121_5.png

测试:

Student student1  =(Student)applicationContext.getBean("student");
        Student student2  =(Student)applicationContext.getBean("student");
        System.out.println(student1==student2);

121_6.png

返回的结果为false,创建的是两个不同的对象。

3、值的注入

(1)在属性处赋值:

121_7.png

此种方式破坏了封装性,不推荐,因此set方式更优。

(2)在set方法处赋值:

121_8.png

(3)注入引用数据类型的数据:

方式一:

创建Course对象,并将对象引入到容器:

121_9.png

121_10.png

但是,这种方式有一个弊端,就是在有多个对象的情况下,将无法选择具体选择哪一个。

方式二:

121_11.png

指定注入哪一个对象。

121_12.png

4、引入配置文件创建Spring容器

用此方法需要导入jar包:

121_13.png

ApplicationContext applicationContext=new
                ClassPathXmlApplicationContext("applicationContext.xml");//创建容器对象

创建容器的代码可以用注解代替:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")

采用这种方式只需要在类中写一次,因此,不需要在每一个方法中都写获取容器的代码,可以减少代码量。

文章永久链接:https://tech.souyunku.com/23309

未经允许不得转载:搜云库技术团队 » 注解在Spring中的运用(对象获取、对象单例-多例、值的注入、初始化-销毁方法、获取容器)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们