Spring的学习运用
  p8RyuvESu2pg 2023年11月02日 32 0

@Aurowired:自动注入

在对象类型上使用@Autowired,该注解默认使用 按类型自动装配Bean的方式

联合使用@Autowired与@Qualifier,

@Qualifier的value属性用于指定要匹配的Bean的id值

JDK注解@Resource:自动注入

Spring提供了对jdk中@Resource注解的支持

@Resource:可以按名称匹配也可以安装类型匹配,默认是按名称匹配的

导入jar包

Spring的学习运用_xml

编写School类和Student类

Spring的学习运用_java_02

Student.java

package cn.lexed.pojo;

import javax.annotation.Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component("stu")
public class Student {
	@Value("李四")
	private String name;
	@Value("21")
	private int age;
	//@Autowired
	//@Qualifier("scc")
	@Resource(name="scc")
	private School sc;//name address
	public Student() {
		super();
	}
	
	public Student(String name, int age, School sc) {
		super();
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public School getSc() {
		return sc;
	}

	public void setSc(School sc) {
		this.sc = sc;
	}

	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + ", sc=" + sc + "]";
	}
	
}

School.java

package cn.lexed.pojo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component("scc")
public class School {
	@Value("哈工大")
	private String name;
	@Value("qqqqqqq")
	private String address;
	public School() {
		super();
	}
	public String getName() {
		return name;
	}
	/*public void setName(String name) {
		this.name = name;
	}*/
	public String getAddress() {
		return address;
	}
	/*public void setAddress(String address) {
		this.address = address;
	}*/
	@Override
	public String toString() {
		return "School [name=" + name + ", address=" + address + "]";
	}
	
}

编写配置文件

组件扫描器,用于在指定的包中扫描你定义的注解

base-package属性:值是包名,容器启动会扫描包中以及子包中的注解

Spring的学习运用_xml_03

app.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">

<!-- 组件扫描器,用于在指定的包中扫描你定义的注解
     base-package属性:值是包名,容器启动会扫描包中以及子包中的注解
 -->
<context:component-scan base-package="cn.lexed.pojo"></context:component-scan>
</beans>

编写测试类

Spring的学习运用_spring_04

TestSpring.java

package cn.lexed.test;

import static org.junit.Assert.*;
import java.util.Date;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.lexed.pojo.Student;

public class TestSpring {

	@Test
	public void test() {
		//1.创建Spring容器的对象
		ApplicationContext ac=new ClassPathXmlApplicationContext("app.xml");
		//2.使用getBean方法,getBean(配置文件中bean的id值)
		Student s1=(Student)ac.getBean("stu");
		System.out.println(s1);
	}
}


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  2Vtxr3XfwhHq   2024年05月17日   46   0   0 Java
  8s1LUHPryisj   2024年05月17日   42   0   0 Java
  aRSRdgycpgWt   2024年05月17日   44   0   0 Java
p8RyuvESu2pg
作者其他文章 更多