前言 | spring提供使用 xml、注解、java配置、groovy配置实现bean的创建和注入
- spring 配置文件中开启扫描包中类的注解
-
声明bean的注解(将对象注入容器)
1)、@Component 没有明确的角色
2)、@Service 在业务逻辑层使用(service)
3)、@Repository 在数据访问层使用(dao)
4)、@Controller 在控制层使用(MVC --- Spring MVC)
-
修改对象的作用范围
默认作用访问是单例的 @Scope(scopeName="singleton")
|- @Scope("Singleton"): 默认值,可不写。一个spring容器中只有一个bean的实例
|- @Scope("Prototype"): 每次调用都新建一个bean实例
|- @Scope("Request"): web项目中,给每一个http request 新建一个bean实例
|- @Scope("Session"): web项目中,给每一个http session 新建一个bean实例 -
值类型注入 (注入bean的注解)
- 引用类型注入 (注入bean的注解)
-
java配置
java配置是spring 4.x推荐的配置方式,可以完全替代xml配置;java配置也是spring boot推荐的配置方式。
java配置是通过@Configuraion 和 @Bean来实现的。
1)、 @Configuration 声明当前类是一个配置类,相当于一个Spring配置的xml文件
2)、@Bean 注解在方法上,声明当前方法的返回值为一个Bean
何时使用 java 配置或者注解配置?
全局配置使用java配置(如数据库相关配置、MVC相关配置),业务bean的配置使用注解配置(@Service、@Component、@Repository、@Controller)
-
spring支持AspectJ的注解式切面编程
|- AOP:面向切面编程,相对于oop面向对象编程
spring 的aop存在的目的是为了解耦。aop可以让一组类共享相同的行为。在oop中只能通过继承类和实现接口,来使代码的耦合度增强,且类只能单继承,阻碍更多行为添加到一组类上,aop弥补了oop的不足。
-
其它常用注解
1)、@ComponentScan 自动扫描包下所有使用@Service、@Component、@Repository和@Controller注解的类,并注册为bean ------> @ComponentScan("xxx.xx.x")
2)、@Value:注解@Value参数中使用表达式语言实现资源的注入
网友评论