Spring基于注解的DI-基本注解
简单的创建一个Java 工程,配置好环境Spring注解开发基本配置
Strudent.java
package com.hk.spring.di01;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
//与@Component功能相同但是意义不同的注解还有三个
//1、@Controller (注解在处理器上【SpringMvc】)
//2、@Repository (注解在Dao实现类上)
//3、@Service (注解在Service实现类上)
@Component("myStudent")
public class Student {
@Value("小明")
private String name;
@Value("23")
private int age;
@Autowired //域属性的byType自动注入
private School school;//域属性
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setSchool(School school) {
this.school = school;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + ", school=" + school
+ "]";
}
}
域属性的byName自动注入
域属性的byType自动注入的另一种形式
//import javax.annotation.Resource;是Java的标准注入
@Resource//域属性的byType自动注入
private School school;//域属性
域属性的byName自动注入的另一种形式
//import javax.annotation.Resource;
@Resource(name="mySchool")//域属性的byName自动注入
private School school;//域属性
School.java
package com.hk.spring.di01;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component("mySchool")//组件
public class School {
@Value("九江学院")
private String schloolName;
public void setSchloolName(String schloolName) {
this.schloolName = schloolName;
}
@Override
public String toString() {
return "School [schloolName=" + schloolName + "]";
}
}
applicationContext.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.xsd">
<!-- 配置组件扫描器 就是说明你的bean注解在哪个包下 -->
<context:component-scan base-package="com.hk.spring.di01"></context:component-scan>
</beans>
Mytest.java
package com.hk.spring.di01;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Mytest {
@Test
public void test1(){
String resource = "com/hk/spring/di01/applicationContext.xml";
ApplicationContext ac = new ClassPathXmlApplicationContext(resource);
Student stu = (Student) ac.getBean("myStudent");
System.out.println(stu);
}
}