基于注解创建对象
首先我们引入context空间进行注解扫描
在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">
<!-- 引入context名称空间并开启注解扫描-->
<context:component-scan base-package="com.Spring5.obj"></context:component-scan>
</beans>
base-package
扫描注解的时候,可以从他的上一级目录开始扫描,也可以直接扫描类所在的目录,扫描多个目录要用逗号隔开
接下来创建一个ObjDemo类,来实现注解创建对象
package com.Spring5.obj;
import org.springframework.stereotype.Component;
@Component
public class ObjDemo {
public void ObjDemo1(){
System.out.println("add........");
}
}
可以创建对象的注解一共有4个
@Component
可以给任意组件使用
@Controller
web层
@Service
service层
@Repository
dao层
其功能全都一样,有四个只是为了后续便捷开发
值得注意的是
例如@Component()
,如果括号里使用value赋值的话,创建的对象就是value赋的那个值,但是如果不写,Spring会把对象名默认把创建为对象的类的名称的首字母小写作为对象名,其他三个注解和他一样
创建一个测试类
package com.Spring5.Test;
import com.Spring5.obj.ObjDemo;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test1 {
@Test
public void test1(){
ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml");
ObjDemo objDemo=context.getBean("objDemo",ObjDemo.class);
objDemo.ObjDemo1();
}
}
###运行测试类结果为