package com.atChina.Test;
import org.springframework.stereotype.Component;
/*
* @Component: 创建对象,默认创建的是单例对象
* 属性: value,表示对象的id
* 位置: 在类的上面,表示创建该类的对象
* @Component(value="myStudent")等同于<bean id="myStudent" class="com.atChina.Test.Student" />
* 和@Component功能相同的其他注解:
* 1.@Repository:放在dao层实现类的上面,创建dao层
* 2.@Service:放在service层的实现类上面,创建service对象
3.@Controller:放在处理器类的上面,创建控制器对象
*/
// 方式一
//@Component(value="student")
// 方式二: value可以省略
//@Component("student")
// 方式三: 不指定对象名称,由框架生成默认的名称:类名的首字母小写
@Component
public class Student {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}
@Test
public void test1(){
String configLocation = "com/atChina/Test/applicationContext.xml"; // 类路径的根目录
ApplicationContext ctx = new ClassPathXmlApplicationContext(configLocation);
Student ss = (Student)ctx.getBean("student");
System.out.println("stduent:"+ss);
}
<?xml version="1.0" encoding="UTF-8"?>
<!-- 引用Spring的多个Schema空间的格式定义文件 -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
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
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd ">
<!-- 声明组件扫描器,指定组件所在的包名
component-scan标签:组件扫描器
base-package:指定注解所在的包名,框架会扫描这个包和子包中类的注解
-->
<context:component-scan base-package="com.atChina.Test" />
<!-- 指定多个包中的注解 -->
<!-- 第一种方式:多次使用 component-scan -->
<context:component-scan base-package="com.atChina.Test1" />
<context:component-scan base-package="com.atChina.Test2" />
<!-- 第二种方式:使用分隔符(;或,),指定多个包 -->
<context:component-scan base-package="com.atChina.Test1;com.atChina.Test2" />
<!-- 第三种方式:指定父包 -->
<context:component-scan base-package="com.atChina" />
</beans>