使用spring提供的注解完成Java对象的创建,属性赋值
@Component注解@Component 表示创建对象,对象创建到容器中。 作用和
属性 value 表示对象名称,也就是bean的id属性值位置 在类的上面 表示创建此类的对象
@Component(value = “myStudent”) 等同于
下面使用@Component注解示例下如何创建对象
1-创建实体类
创建一个实体类并且在类的上面加上此注解
2-添加配置文件applicationContext.xml
配置文件添加组件扫描器
3-测试
测试结果 可以看到 spring调用的是无参构造实例化对象
其他注解的说明
除了@Component注解之外,还有其他三个和@Component功能相同的创建对象的注解
@Repository 放在dao接口的实现类上面,表示创建dao对象,持久层对象,能访问数据库@Service 放在业务层接口的实现类上面,表示创建业务层对象,业务层对象有事务的功能@Controller 放在控制器类的上面,表示创建控制器对象,属于表示层对象
虽然以上四个注解都能创建对象,但是@Repository @Service @Controller有角色说明,表示对象是分层的,对象是属于不同层的,具有额外的功能
使用注解给属性赋值一般使用@Value注解给属性赋值
简单类型的属性赋值:@Value
@Value有个属性叫value 它的值是简单类型的属性值
这个注解可以放在2个位置
1-放在属性的上面 无需set方法即可赋值(推荐使用)
2-放在set方法的上面(将会调用set方法进行赋值)
在学生类中添加一个字段school 然后创建一个school实体类
在school属性上打上@Autowired注解代表此属性开启了自动注入,spring会寻找合适的实例进行注入
School类图
由于我已经在school类中添加了@component注解和@value生成对象和赋值了, 所以配置文件中仅开启扫描即可
配置文件如图
这样的话在spring容器加载对象的时候会把school的对象赋值给student对象中的school属性了,这样就完成了自动注入!
单元测试
控制台打印student



