Spring-IOC注解
- 在
Spring4
之后,也就是5
开始,想要使用IOC注解的形式,必须得要引入Aop
的包
在 applicationContext.xml
配置文件当中,还得要引入一个 context约束
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
- 我还是把内容放在这里吧方便复制
<?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">
</beans>
配置注解扫描
- 哪个包下的类,需要进行注解扫描
- 修改
applicationContext.xml
添加如下内容:
...
<context:component-scan base-package="top.it6666"/>
...
- 如上的配置方式可以扫描
it6666
包下的所有子包- 所以你就不用每个包一个配置每个包一个配置了,这样子配一次性的扫描了简洁
使用注解的方式配置Bean
- 在对应的类上添加注解
- 紧接着上篇的文章,修改
User
类代码如下:
/**
* @author: BNTang
**/
@Component("user")
public class User {
}
- 测试类代码如下:
/**
* @author: BNTang
**/
public class UserDaoTest {
@Test
public void Demo() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User) applicationContext.getBean("user");
System.out.println(user);
}
}
使用注解的方式注入属性
- 可以不用提供
set方法
,直接在属性上添加如下注解即可- 修改
User
类代码如下:
@value("值")
/**
* @author: BNTang
**/
@Component("user")
public class User {
@Value("BNTang")
private String name;
public void say(){
System.out.println("name = " + name);
}
}
- 修改测试类代码如下:
/**
* @author: BNTang
**/
public class UserDaoTest {
@Test
public void Demo() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User) applicationContext.getBean("user");
user.say();
}
}
- 如果提供了
set方法
,就在set方法上
添加如上注解- 修改
User
类代码如下:
/**
* @author: BNTang
**/
@Component("user")
public class User {
private String name;
@Value("BNTang")
public void setName(String name) {
this.name = name;
}
public void say(){
System.out.println("name = " + name);
}
}
- 测试类代码同上: