spring注入

filter过滤器
监听器

autowiring

byType时,是通过判断setXXX()方法形参的类的类型与配置文件中所需要使用的类的类型是否一致;

byName时,是通过判断setXXX()方法形参的参数名与配置文件中bean对应的id是否一致进行判断;

contructor:就是使用有参构造函数进行赋值;

但是当byName时,如果在类中定义了有参的构造函数且没有无参的构造函数时,是会报错的!

用byName的时候,bean id=“xxx”一定要与setXxx(形参)的Xxx首字母变小写后相同,而不一定与形参相同,也不一定与成员变量相同。当然,一般正规的set方法后面的Xxx是与成员变量相同的,因此一般情况下bean id与成员变量相同。

Aware
实现ApplicationContextAware接口
获取applicationContext

@Autowired 可以配合@Qualifier使用 等效于@Inject

@Service 逻辑业务层

@Responsitory 持久层

@Component 不确定是@Service或者其他,加上去

@Qualifier 所以小范围,用于 list map

@Resource 主要与@Autowired的区别

@Bean 默认单例 可以使用 @Scope 改变
bean的scope: singleton(单例默认),prototype

@Configuration 和 @Bean一起用
@ImportResource("classpath:conf/xxx.xml")
spring中

spring注入_第1张图片

xml方式和注解方式配置数据库连接

JSR
@Resource 类似@Autowired 注解在成员变量或者setXxx方法上

AOP


spring注入_第2张图片

AOP
springaop xml加注解方式很烦
aspectj 使用注解方式很方便


一些常用注解
@Autowired和@Qualifier 自动注入[根据类型注入]
@Autowired 可以对成员变量、方法以及构造函数进行注释,
@Qualifier 的标注对象是成员变量、方法入参、构造函数入参。
ps:两者结合使用相当于@Resourcede效果。
@Resource 自动注入[根据名称注入],可写参数name=""
@Controller 表示控制器
@Service 表示业务处理层[一般在serviceImpl]
@Repository 表示持久层[一般在daoImpl]
@Component 当你的类不清楚是哪一层的时候使用该注解
@ResponseBody 异步返回数据类型为json
@RequestMapping 路径,请求类型等设置
@InitBinder 数据绑定
@RequestBody、@ModeleAttributes、@SessionAttributes等

你可能感兴趣的:(spring注入)