在String中更简单的存储和读取对象的核心是使用注解
1.存储Bean对象
(1)准备工作:配置扫描路径
需要先在spring-config中添加一行bean注册内容
其中标红一行为注册扫描的包,只有此包下的类对象才能被存储到String中
(2)添加注解存储Bean对象
将对象存储到String中,有两类注解可以实现:
1.类注解:@Controller、@Service、@Repository、@Component、@Configuration。
2.方法注解:@Bean。
① 类注解
这五个类注解的用法一样
package com; import org.springframework.stereotype.Controller; @Controller public class UserController { public void sayHi() { System.out.println("Hi Hi Hi"); } }
读取bean代码:
public class App { public static void main(String[] args) { //1. 得到上下文 ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml"); //2.得到bean UserController userController = (UserController) context.getBean("userController"); //3.调用bean方法 userController.sayHi(); } }
问题:既然功能一样为什么还要这么多类注解呢?
那是因为用途不同,不同注释可以将程序的工程分层
@Controller:表示的是业务逻辑层
@Service:服务层
@Repository:持久层
@Configuration:配置层
@Component:标注一个类为String容器的Bean
补充:Bean 命名规则
正常情况命名为Bean类名字的首字母小写
若Bean类的第一个第二个字母都大写,此时就用原类名命名。
② 方法注解@Bean
类注解是添加到某个类上的,而方法注解是放到某个方法上的
在Spring框架中,方法注解@Bean要配合类注解才能将对象存储到Spring容器中
补充:重命名 Bean
未完待续...