关于注解:本质是反射机制实现,底层为动态代理
Mybatis框架:
Mybatis使用注解来映射简单语句会使代码显得更加简洁,然而对于复杂一点的语句,java注解就力不从心了,并且会显得更加混乱。因此,如果要完成很复杂的事情,最好使用xml配置文件来映射语句。
CRUD:
@Select、@Insert、@Param(对于基本类型可以用,引用类型用不了)、@Update、@Delete
Spring框架:
在spring4之后,使用注解开发要保证aop的包导入了
@Autowired(自动装配):直接在属性上使用即可,也可以在set方式上使用,使用byname方式实现,可以简化beans.xml文件中的内容,使其更加简洁。需要注意的是使用Autowired注解我们可以不用编写set方法了,但是前提是你这个自动装配的属性在IOC容器中存在,且符合名字byname
1、可以配合@Qualifier(value="")来使用,特定某个对象,若对象比较多,则比较复杂
2、也可以使用@Resource,此为Java自带的注解
@Nullable:字段标记了这个注解,说明这个字段可以为null
@Component:组件(相当于spring的beans.xml中<beans/>)常用在实体类上,常套在一起的有@Value("字面量/${key}从环境变量、配置文件中获取值/#{SpEL}如#{10*30}")
其有几个衍生的注解如下:
1、dao层:@Repository
2、service层:@Service
3、controller层:@Controller 被其注解的类,如果返回值为String,并且有具体的页面跳转,就会被视图解析器解析
@Component、@Repository、@Service、@Controller这四个的注解都是一样的,都是代表将某个类注册到spring中,装配bean,即在IOC容器中有一个实例对象。
@Configuration:代表这是一个配置类,相当于beans.xml,其就是spring使用注解来代替beans.xml的配置文件,其配合常用的有@ComponentScan、@Bean
@ComponentScan:("com.yyy.pojo"):显示定义扫描包
@Bean:注册bean,相当于<bean/>标签
@Aspect:使用注解开发AOP会用到,标注这是一个切面(相应其中会有切点@Before、@After)
@RequestMapping("/t3"):其注解用于映射url到控制器或一个特定的处理程序方法
SpringBoot:
@SpringBootApplication:来标注这是一个主程序类,说明这是一个springboot的应用
@SpringBootConfiguration:SpringBoot的配置类,标注在某个类上,表示这是springboot的配置类
@EnableAutoConfiguration:开启自动配置功能
@AutoConfigurationPackage:自动配置包,将主程序类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到spring容器中
@Import:给容器导入一个组件
@ConfigurationProperties(prefix="配置文件中的字面量如User实体类"),其默认加载全局配置文件application.yml,将配置文件中的每一个属性值映射到这个组件中,这个注解是告诉springboot将本类中的所有属性和配置文件中相关的配置进行绑定,需要注意的是在注解的类上还要加上@Component注解,因为只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能生效
@Validated:通常放在类上和@ConfigurationProperties注解一起配合使用,表示该Javabean的属性字段需要进行格式(数据)校验,即JSPR303数据校验
@PropertySource(Value={"classpath:user.yml"}),加载指定的配置文件,将配置文件拆分后,利用这个方式给一些类如身体类读取值
@ImportResource(locations={"classpath:beans.xml"}),导入spring的配置文件,让配置文件里面的内容生效,一般放在主程序类上,但是springbot推荐使用注解来配置类(代替配置文件),防止配置文件过多导入麻烦,而使用注解来配置类就立即生效了