Spring的注解开发
低版本注解:
如果要让spring支持注解,必须开启注解支持及组件扫描。
配置文件applicationContextOfAnnotation.xml:
base-package指定在Demo及其内部文件夹扫描遍历所有注解。
注解@Component不属于任何层
注解@Component(id)完成创建对象,不方便区分属于哪一层但是需要注解管理时使用
注解@Controller代表MVC控制层
在SpringMVC中用的比较多
注解@Service代表业务层
衍生注解@Service(id)完成service层的bean实例化,可读性更强
注解@Repository代表DAO层
衍生注解@Repository(id)完成dao层的bean实例化,可读性更强
接口UserDao的实现类UserDaoImpl:
注解@Autowired按照类型自动注入
@Autowired自动注入,可以配合Qualifier使用,可以单独使用。单独使用时是按照下面的类型注入,前提是该类型在配置文件中唯一。
注解@Qualifier
@Qualifier(想要注入的bean的id),必须结合Autowired使用,按照id名称从容器中进行匹配。
注解@Resource
@Resource(name=id),相当于@Autowired+@Qualifier一起使用【需要加name,jdk9已删除,不推荐使用】
userService:
注解配置的情况下,set方法可以不写
注解@Repository
衍生注解@Repository完成web层的bean实例化,可读性更强,但是我们是虚假的web程序不能用这个
虚假的web程序:
注解@Value:支持SpEL ${}
注解@Scope
前面讲过,不演示
注解@PostConstruct
初始化
注解@PreDestroy
结束
高版本注解,不推荐使用
@Configuration标注一个类是配置类
当我们看到这个注解,说明这个类是Spring的配置类
@ComponentScan组件扫描,替代配置文件组件扫描标签
扫描如下的注解,被扫描到的注解会自动被当成配置类去加载【不推荐使用,过于憨批】
@PropertySource替换配置文件的placeholder标签
用于引入properties配置文件供spring使用
@Import引入
在配置类中引入其他配置类
@Bean
一般用于第三方工厂方法去创建对象
用注解全部替换掉applicationContext.xml配置文件: