一.mybatis
1 配置一对多查询和多对多查询的注解方式映射关系:
@Results:声明映射关系的配置 Value属性接收 @Result的数组
@Result:配置映射关系
id属性(boolean)声明是否为主键配置
Property属性对象中的属性名
Column属性查询的字段名
二.spring
2 创建当前对象交给spring容器管理的注解
@Component(value="id标识")
@Controller(value="id标识") web层
@Service(value="id标识") service层
@Repository(value="id标识") dao层
说明:需要配置到类上 Value属性指定唯一标识
3 属性依赖注入的注解
@Autowired
说明:默认按照类型(接口)从容器中查找对象并注入 也可以以属性名作为唯一标识从容器中查找对象并注入
@Qualifier(value="id标识") Value属性可以按照id唯一标识注入
@Value
说明:注入基本数据类型数据 也可以注入被spring容器管理的properties文件中的内容
4 生命周期相关的注解
@Scope
说明:对象的作用 Value属性(singleton|prototype)
@PostConstruct
说明:配置到方法上 用来配置初始化方法
@PreDestory
说明:配置到方法上 用来配置销毁方法
5 使用配置类替换xml配置文件的注解
@Configuration:声明配置类
@ComponentScan: 开启包扫描
@PropertySource:将properties配置文件交给spring容器管理
@Import:引入其它的配置类
@Bean : 配置到方法上,表明此方法的返回值交给spring容器管理
6 springTest的相关注解
@Runwith(SpringJunit4ClassRunner.class) 声明spring提供的类加载配置文件
@ContextConfiguration 声明spring的配置信息
Locations属性xml配置文件 Classes属性配置类的字节码
7 AOP相关的注解
@Aspect 声明切面类
@PonitCut 定义公共的切入点 配置到空方法上
value属性切入点表达式 引用:方法名()
配置通知类型:
@Before 前置通知
@AfterReturnint 后置通知
@AfterThrowing 异常通知
@After 最终通知
@Around 环绕通知
@EnableAspectJAutoProxy 开启对AOP注解的支持 用于纯注解使用
8 事务相关的注解
@Transactional 需要事务的类或者方法上使用配置事务
@EnableTransactionManagement 纯注解使用 代表开启对注解事务的支持
三.springmvc
9 @RequestMapping("/user") 做浏览的访问路径和当前方法的映射
@RequestHeader 获取到请求头的信息
@CookieValue 获取到cookie的jsessionID
@RequestBody 配置到方法参数上,表明将json字符串转化为java对象
@ResponseBody 配置到方法返回值,表明将对象转化为json字符串
@RequestBody 配置到方法参数,表明将json字符串转化为对象
@SessionAttributes(value = {"username"}) //代表当前类中的所有方法 只要是model对象操作了指定的参数 都会向session域中存一份
@ModelAttribute("aaa") 向Model中添加元素
10 restFul代码编程的要求:
确定地址参数(id)如何设置路径 格式:{id}
确定如何获取到地址参数(id)在方法参数上使用注解: @PathVariable(value = "id")
指定就对某一种提交方式有效 @RequestMapping(value = "/{idddd}.html",method = RequestMethod.GET) 只对get提交有效
1、Spring分层注解(都是向Spring注册bean)
@Controller 控制层
@Service 业务处理层(一般在serviceImpl)
@Repository 持久层(数据访问层,即DAO层,一般在daoImpl)
2、对象注解
@Autowired 采用类型的方式完成自动装配:
它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作
@Autowired根据bean类型从spring上线文中进行查找,注册类型必须唯一,否则报异常。
@Resource 采用名称+类型的方式完成自动装配:
@Resource默认按bean的name进行查找,如果没有找到会按type进行查找,此时与@Autowired类似
(当采用名称进行装配的时候,在你用到这个实例的时候,所使用的名称一定要相同;如果是采用类型装配的话,它找的就是这个类。)
Resource 的作用相当于 @Autowired,只不过 @Autowired 按 byType 自动注入,而@Resource 默认按 byName 自动注入罢了。@Resource 有两个属性是比较重要的,分别是 name 和 type,Spring 将@Resource 注释的 name 属性解析为 Bean 的名字,而 type 属性则解析为 Bean 的类型。所以如果使用 name 属性,则使用 byName 的自动注入策略,而使用 type 属性时则使用 byType 自动注入策略。如果既不指定 name 也不指定 type 属性,这时将通过反射机制使用 byName 自动注入策略。
3、ResponseBody
这个注解,就是当你引入了Jackson这个jar包的时候,再使用这个注解,SpringMVC就可以自动将它所修饰的方法的返回值转换为json格式,从而不需要人为的去转换
4、Mybatis相关注解:
@SelectProvider(type = TestSqlProvider.class, method = "getSql") : 提供查询的SQL语句,如果你不用这个注解,你也可以直接使用@Select("select * from ....")注解,把查询SQL抽取到一个类里面,方便管理,同时复杂的SQL也容易操作,type =TestSqlProvider.class就是存放SQL语句的类,而method ="getSql"表示get接口方法需要到TestSqlProvider类的getSql方法中获取SQL语句。
@UpdateProvider(type = TestSqlProvider.class, method = "updateSql") :用法和含义@SelectProvider一样,只不过是用来更新数据库而用的。
@InsertProvider(type = TestSqlProvider.class, method = "insertSql") :用法和含义@SelectProvider一样,只不过是用来插入数据库而用的。
@DeleteProvider(type = TestSqlProvider.class, method = "deleteSql") :用法和含义@SelectProvider一样,只不过是用来删除数据而用的。
@Result:表示SQL查询返回的结果集。可以说数组中所有的@Result组成了单个记录的映射关系,而@Results则是单个记录的集合。
@ResultMap
@Param("testBean") :定义参数。是一个自定义的对象,指定了sql语句中的表现形式,如果要在sql中引用对象里面的属性,只要使用testBean.id,testBean.textText即可,mybatis会通过反射找到这些属性值。
5、RequestMapping:是一个用来处理请求地址映射的注解。可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
RequestMapping有六个属性:
value:指定请求的实际地址
method:指定请求的method类型,get、post、put、delete
consumes:指定处理请求的提交内容类型
produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回
params:指定request中必须包含某些参数值才让该方法处理
header:指定request中必须包含某些指定的header值,才让该方法处理请求
6、RequestParam:用于将指定的请求参数赋给方法中的形参
7、Required:负责检查一个bean在初始化时其声明的set方法是否被执行,当某个被标注了 @Required的 Setter方法没有被调用,则 Spring在解析的时候会抛出异常,以提醒开发者对相应属性进行设置。 @Required注解只能标注在 Setter方法之上。
原文:https://blog.csdn.net/qq_40428105/article/details/80383655