@Configuration
表示当前类可以用作配置文件使用
可以在这个类中使用@bean注解来创建对象(类似于单例模式的饿汉式)。
方法中需要有返回值+使用new这个关键字
spring会把这个返回值放入spring容器中;
在后面的方法中如果要调用这个方法(@bean中有个属性name,命名name的值,在后面的@resource中使用使用按照名称注入)没有使用name这个属性的话,默认情况下@bean方法的方法名;
---------------------------------------------------------------------------------------------------------------------------------
@importResource:用来导入xml文件,xml文件里面也是声明java对象,同样也是导入到spring容器中
---------------------------------------------------------------------------------------------------------------------------------
@propertySource:用来导入property文件
可以和@value一起使用,@value来用读取property文件的内容;
---------------------------------------------------------------------------------------------------------------------------------
@componentScan:用来指定扫描注解的位置,扫描把扫描到的注解生成对象放入spring容器中,
属性:basePackage:指定扫描到包的位置
默认情况下是扫描当前包和子包的位置
---------------------------------------------------------------------------------------------------------------------------------
@SpringBootApplication
由三个主要注解组合而成:@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan
@SpringBootCOnfiguration:表示这个类可以作为配置类使用;
@EnableAutoConfiguration:启动自动注入,把java文件配置好,直接注入到Spring容器中;
@ComponentScan:表示文件下的注解,用来创建对象
---------------------------------------------------------------------------------------------------------------------------------
@ConfigurationProperties:使用在java类上,表示使用K-V自动注入到对应的java属性上,
参数prefix:把properties文件中对应的前缀.后面的属性对应到properties文件的属性中(使用在类上,所以在属性上可以自动赋值)
和@value是两种用法
--------------------------------------------------------------------------------------------------------------------------------
@controller、@service、@Repository、@component
这些注解使用在java类上,componentScan会扫描这些完成对象的创建
@controller使用在控制层,完成接收请求参数,调用service层完成用户的请求,返回视图层给用户;
@Service:业务层的逻辑,调用dao层完成用户对数据库的操作,将处理结果返回给controller;
@Repository:使用对数据库进行持久化操作(保证用户的数据可以写入到数据库中),将处理结果返回给service层
##在SpringBoot中使用@mapper代替这个注解。用来告诉mybatis创建这个对象的动态代理对象
##@mapperScan(basePackage:指定的mapper文件的路径),使用在主启动类上,省的一个一个dao层都要使用到@mapper
@component:用来创建对象,但是对象没有前面三个有特殊的功能
@transaction:表示开启事务(一般使用在service层)有五个参数
1、传播行为 2、隔离级别 3、超时行为 4、回滚规则 5、是否只读
---------------------------------------------------------------------------------------------------------------------------------
@RestController = @responseBody+@controller
使用在类上:表示这个类是控制层,而且类中的所有方法加上@responseBody这个注解