邹瑞20201214
总结
注解
常用注解
1.用于创建对象的
相当于:
@Component
作用:把资源让 spring 来管理。相当于在 xml 中配置一个 bean。
属性: value:指定 bean 的 id。如果不指定 value 属性,默认 bean 的 id 是当前类的类名。首字母小 写。
@Controller @Service @Repository
它们三个注解都是针对一个 @Component 的衍生注解,他们的作用及属性都是一模一样的。 他们只不过是提供了更加明确的语义化。
@Controller:一般用于表现层的注解。
@Service:一般用于业务层的注解。
@Repository:一般用于持久层的注解。
2.用于注入数据的
@Autowired
作用: 自动按照类型注入。当使用注解注入属性时,set 方法可以省略。它只能注入其他 bean 类型(spring中 有的)。当有多个类型匹配时,使用要注入的对象变量名称作为 bean 的 id,在 spring 容器查找,找到 了也可以注入成功。找不到就报错。
@Qualifier
作用: 在自动按照类型注入的基础之上,再按照 Bean 的 id 注入。它在给字段注入时不能独立使用,必须和 @Autowired 一起使用;但是给方法参数注入时,可以独立使用。 属性: value:指定 bean 的 id。
@Resource
作用: 直接按照 Bean 的 id 注入。 属性: name:指定 bean 的 id。
@Value
作用: 注入基本数据类型和 String 类型数据的 属性: value:用于指定值
3.用于改变作用范围的:
@Scope
作用: 指定 bean 的作用范围。 属性: value:指定范围的值。 取值:singleton prototype request session globalsession
mybatis中注解
@Results 注解:代替的是标签,该注解中可以使用单个@Result 注解,也可以使用@Result 集合
@Results({@Result(),@Result()})或@Results(@Result())
@Result 注解:代替了标签和标签
属性介绍:
id 是否是主键字段 column 数据库的列名
property 需要装配的属性名
one 需要使用的@One 注解(@Result(one=@One)())
many 需要使用的@Many 注解(@Result(many=@many)())
@One 注解(一对一):代替了标签,是多表查询的关键,在注解中用来指定子查询返回单一对象
属性介绍:
select 指定用来多表查询的 sqlmapper
fetchType 会覆盖全局的配置参数 lazyLoadingEnabled
使用格式:
@Result(column=" ",property="",one=@One(select=""))
@Many 注解(多对一):代替了标签,是是多表查询的关键,在注解中用来指定子查询返回对象集合
注意:聚集元素用来处理“一对多”的关系。需要指定映射的 Java 实体类的属性,属性的 javaType
一般为 ArrayList)但是注解中可以不定义;
使用格式:
@Result(property="",column="",many=@Many(select=""))
近期评论