个人总结在工作和学习中 所了解的Java开发注解总结欢迎大家留言评论
Mybatis常用注解总结
SQL语句
@Insert : 实现新增
@Update: 实现更新
@Delete: 实现删除
@Select: 实现查询
2、结果集映射
@Result
,@Results
,@ResultMap
是结果集映射的三大注解。
首先说明一下:
@Results
各个属性的含义,id为当前结果集声明唯一标识,value值为结果集映射关系
@Result
代表一个字段的映射关系,column指定数据库字段的名称,
property指定实体类属性的名称,jdbcType 数据库字段类型
@Result
里的id值为true表明主键,默认false使用@ResultMap来引用映射结果集
其中value可省略。
@Results 注解
代替的是标签 <resultMap>
@Resutl 注解
代替了 <id>
标签和<result>
标签
@ResultMap
实现引用 @Results
定义的封装
这样就不用每次需要声明结果集映射的时候都复制冗余代码,简化开发,提高了代码的复用性。
3、关系映射
@one注解:用于一对一关系映射 (一对一)
代替了<assocation
> 标签,是多表查询的关键,在注解中用来指定子查询返回单一对象
@many注解:用于一对多关系映射 (多对一)
代替了<assocation
> 标签,是多表查询的关键,在注解中用来指定子查询返回单一对象
@Select("select * from t_class where id=#{id}")
@Results({
@Result(id=true,column="id",property="id"),
@Result(column="class_name",property="className"),
@Result(property="students", column="id", many=@Many(select="cn.mybatis.mydemo.mappers.StudentMapper.getStudentsByClassId"))
})
public Class getClass(int id);
@CacheNamespace:
实现注解二级缓存的使用 建议百度 http://www.mybatis/archives/128.html
Spring5中常用注解
将实体类存入Spring的IOC容器:
@Component:
用于创建对象的,作用于类。
value:指定 bean 的 id。如果不指定 value 属性,默认 bean 的 id 是当前类的类名。首字母小写。
@Controller
: 一般用于表现层的注解。
@Service
: 一般用于业务层的注解。
@Repository
: 一般用于持久层的注解。
@Bean
作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中
属性:name:用于指定bean的id。当不写时,默认值是当前方法的名称
细节:当我们使用注解配置方法时如果方法有参数spring框架会去容器中
查找有没有可用的bean对象。查找的方式和Autowired注解的作用是一样的
用于注入数据的:
@Autowired
:自动按照类型注入。当使用注解注入属性时, set 方法可以省略。它只能注入其他 bean 类型。当有多个类型匹配时,使用要注入的对象变量名称作为 bean 的 id,在 spring 容器查找,找到了也可以注入成功。找不到就报错。
@Qualifier
:
作用:在自动按照类型注入的基础之上,再按照 Bean 的 id 注入。它在给字段注入时不能独立使用,必须和
@Autowired
一起使用;但是给方法参数注入时,可以独立使用属性:value:指定 bean 的 id
@Resource
:
作用:直接按照 Bean 的 id 注入。它也只能注入其他 bean 类型。
属性:name:指定 bean 的 id。
@Value
:
作用:注入基本数据类型和 String 类型数据的
属性:value:用于指定值
改变作用范围的:
@Scope:
作用:指定 bean 的作用范围。
属性:value:指定范围的值。
取值:singleton(单例的) prototype(多例的)
request:每次http请求都会创建一个bean,该作用域仅在基于web的Spring ApplicationContext情形下有效。
session 在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。
globalsession:在一个全局的HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。缺省的Spring bean 的作用域是Singleton.
和生命周期相关的:
@PostConstruct:
作用:用于指定初始化方法
@PreDestroy
作用:用于指定销毁方法
配置类相关:
@Configuration:
作用:用于指定当前类是一个 spring 配置类 当创建容器时会从该类上加载注解。 获取容器时需要使用
AnnotationApplicationContext(有@Configuration 注解的类.class)。
细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写。
@ComponentScan
作用:用于指定 spring 在初始化容器时要扫描的包。 作用和在 spring 的 xml 配置文件中的:
<context:component-scan base-package=“com.itheima”/>
是一样的。
属性:basePackages:用于指定要扫描的包。和该注解中的 value 属性作用一样。
@Import
作用:用于导入其他的配置类
属性:value:用于指定其他配置类的字节码。
当我们使用Import的注解之后,有Import注解的类就父配置类,而导入的都是子配置类
@PropertySource
作用:用于指定properties文件的位置
value:指定文件的名称和路径。
关键字:classpath,表示类路径下
AOP相关的注解
@Aspect 声明切面类
@PonitCut 定义公共的切入点 配置到空方法上
value属性切入点表达式 引用:方法名()
配置通知类型:
@Before 前置通知
@AfterReturnint 后置通知
@AfterThrowing 异常通知
@After 最终通知
@Around 环绕通知
@EnableAspectJAutoProxy 开启对AOP注解的支持 用于纯注解使用
8 、事务相关的注解
@Transactional
需要事务的类或者方法上使用配置事务
@EnableTransactionManagement
纯注解使用 代表开启对注解事务的支持
Spring 整合 Junit:
当我们使用spring 5.x版本的时候,要求junit的jar必须是4.12及以上
@RunWith(SpringJUnit4ClassRunner.class):
使用@RunWith 注解替换原有运行器
@ContextConfiguration(locations= {“classpath:bean.xml”}):
locations 属性: 用于指定配置文件的位置。如果是类路径下,需要用 classpath:表明
classes 属性: 用于指定注解的类。当不使用 xml 配置时,需要用此属性指定注解类的位置。
@Autowired:使用@Autowired 给测试类中的变量注入数据
Spring MVC的常用注解
@EnableWebMvc
在配置类中开启Web MVC的配置支持,如一些ViewResolver或者MessageConverter等,若无此句,重写WebMvcConfigurerAdapter方法(用于对SpringMVC的配置)。
@Controller
声明该类为SpringMVC中的Controller
@RequestMapping
用于映射Web请求,包括访问路径和参数(类或方法上)
@ResponseBody
支持将返回值放在response内,而不是一个页面,通常用户返回json数据(返回值旁或方法上)
@RequestBody 允许request的参数在request体中,而不是在直接连接在地址后面。(放在参数前)
默认取出的是String类型 想要Json字符串转换成Java对象必须满足
1:mvc:annotation-driver 2:请求头中有application/json(vue自动满足) 3:导入jackson依赖
@PathVariable
用于接收路径参数,比如@RequestMapping(“/hello/{name}”)申明的路径,将注解放在参数中前,即可获取该值,通常作为Restful的接口实现方法。
@RestController
该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有方法都默认加上了@ResponseBody。
@ControllerAdvice
通过该注解,我们可以将对于控制器的全局配置放置在同一个位置,注解了@Controller的类的方法可使用@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上,
这对所有注解了 @RequestMapping的控制器内的方法有效。
@ExceptionHandler
用于全局处理控制器里的异常
@InitBinder
用来设置WebDataBinder,WebDataBinder用来自动绑定前台请求参数到Model中。
@ModelAttribute
本来的作用是绑定键值对到Model里,在@ControllerAdvice中是让全局的
@RequestMapping
都能获得在此处设置的键值对。
restful代码编程的要求:
确定地址参数(id)如何设置路径 格式:{id}
确定如何获取到地址参数(id)在方法参数上使用注解: @PathVariable(value = “id”)
指定就对某一种提交方式有效
@RequestMapping(value = "/{idddd}.html",method = RequestMethod.GET)
只对get提交有效
在 Dubbo 中使用注解
注意 @Service 是导入dubbo 不是Spring
@Reference
@Reference
用来配置 Dubbo 的服务消费方
扩展了解
在 Dubbo 中使用注解
注意 @Service 是导入dubbo 不是Spring
@Reference
@Reference
用来配置 Dubbo 的服务消费方
扩展了解
更多推荐
SpringBoot 常用注解总结归纳
发布评论