spring bean xml配置
上篇文章主要记录了spring的xml配置方式
这里记录一下spring 的注解配置方式
1.创建User类,添加注解
@Component注解,类似于<bean id="user" class="..." />
@Component
public class User {
public void print() {
System.out.println("This is User !!!!");
}
}
2.在spring配置文件中配置约束,开启注解扫描
<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:component-scan base-package="com.fc.test.annoation" />
</beans>
3.junit测试
public class UserTest {
/**
*
* Method: print()
*
*/
@Test
public void testPrint() throws Exception {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User) context.getBean("user");
user.print();
}
}
4.测试结果
This is User !!!!
5.属性注入
新建一个UserService类,作为业务层,新建一个UserDao类作为dao层,然后在userService里注入userDao
@Service
public class UserService {
@Autowired
private UserDao userDao;
public void add() {
System.out.println("service 层 -----");
userDao.dao();
}
}
@Repository
public class UserDao {
public void dao(){
System.out.println("dao 层----");
}
}
然后进行测试,测试和上面步骤相同
@Autowired默认按类型注入,如果类型不匹配,按名称注入
@Resource注解,它默认是按名称进行注入的,名称不匹配,再去按类型匹配。
6.常用注解
创建对象的注解有四个:
@Component:作用在类上
@Repository:用于对DAO实现类进行标注(持久层)。
@Service:用于对Service实现类进行标注(业务层)。
@Controller:用于对Controller实现类进行标注(WEB层)。
后三个注解是Spring中提供的@Component的三个衍生注解(功能目前来讲是一样的),它们是为了让标注类本身的用途更清晰,Spring在后续的版本中会对其进行增强。
7.bean的作用范围
@Scope
singleton:单例,默认值
prototype:多例
所以我们可通过注解设置创建对象是单例或者还是多实例的
参考文章
spring的bean管理(注解方式)
网友评论