8_Spring_注解方式管理bean
1注解方式创建对象IOC
导入依赖 aop
@Component 放在类上,用于标记,告诉spring当前类需要由容器实例化bean并放入容器中
该注解有三个子注解
@Controller 用于实例化controller层bean
@Service 用于实例化service层bean
@Repository 用于实例化持久层bean
当不确定是哪一层,就用Component
这几个注解互相混用其实也可以,但是不推荐
第一步:在applicationContext.xml中配置开启注解扫描
- <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:c="http://www.springframework.org/schema/c"
-
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
- ">
-
<!--添加注解扫描,扫描指定的包,将包中的所有有注解的类实例化
-
base-package 后面放要扫描的包
-
如果有多个包需要扫描,可以使用逗号隔开 com.msb.bean,com.msb.service
-
或者可以写上一层包路径 com.msb
-
可以通过注解指定bean的id@Component("user1")
-
如果不指定,则id默认是 类名首字母小写
-
-->
-
base-package="com.msb.bean"></context:component-scan><context:component-scan
第二步:在类上添加注解,让spring容器给我们创建bean实例并存储于容器中
- package com.msb.bean;
- import org.springframework.stereotype.Component;
- /**
-
- @Author: Ma HaiYang
-
- @Description: MircoMessage:Mark_7001
- */
- @Component(value = "user1")
- public class User {
- }
测试代码
- package com.msb.test;
- import com.msb.bean.User;
- import org.junit.Test;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- /**
-
- @Author: Ma HaiYang
-
- @Description: MircoMessage:Mark_7001
- */
- public class Test1 {
-
@Test
-
public void testGetBean(){
-
ClassPathXmlApplicationContext("applicationContext.xml");ApplicationContext context =new
-
User user = context.getBean("user1", User.class);
-
System.out.println(user);
-
}
- }
组件扫描配置注解识别