Spring注解
import org.springframework.beans.factory.annotation.*;
@Autowired
@Quailfier
@Required
@Value
@Aotowired 和 @Qualifire
该注解支持set方式注入和构造器方式注入.
当采用set方式注入时,可以将@Autowired添加到set方法前面,如果不使用@qualifier,则容器会使用byType的方式来注入,有可能出错,所以建议使用@Qualifier注解,明确指定要注入的bean的id.
也可以将这两个注解直接添加到属性前.set方法就可以不用写了因为使用的是类反射技术.
当采用构造器注入时,可以将该注解添加到对应的构造器前面即可.
@Value注解
可以使用该注解来注入基本类型的值.放到属性前,不需要set方法.
也可以使用该注解来使用spring表达式
该注解可以添加到属性前,或添加到对应的set方法前
import org.springframework.context.annotation.*;
@Bean
@ComponentScan
@Configuration
@Import
@Lazy
@PropertySources
@Scope
@Scope用来指定单例多例的,默认是单例的,多例是prototype
@PropertySource(value={"classpath:kxj.properties","",""})这个注解是读取自定义配置文件,可以配置多个.
相关文章https://blog.csdn.net/kxj19980524/article/details/85120608
@Configuration表示配置类,配合@Bean使用,下面的意思就是把Date放入spring容器,bean的id就是方法名,getDate,通过它来获取
相关文章https://blog.csdn.net/kxj19980524/article/details/85156778
import org.springframework.stereotype.*;
@Controller
@Service
@Repository
@Component
@Component @Controller @Service @Repository
Spring在启动的时候会扫描指定包下的注解,只要在类上加上这四个其中一个,就相当于在配置文件当中,配置了一个bean元素,其实它们四个效果是一样的,只不过规范的话,还是用到适当的地方,如果注解后面啥都不写的话,id默认是类的首字母小写.
import org.springframework.transaction.annotation.Transactional;
@Transactional注解,加到类上面表示该类下面的所有方法都被事务控制,加到单独的方法上的话,只有这个方法被事务控制了
相关文章https://blog.csdn.net/kxj19980524/article/details/85247610
import org.springframework.scheduling.annotation.*;
@EnableScheduling开启Schedule定时器
@Scheduled定时器表达式注解
定时器文章https://blog.csdn.net/kxj19980524/article/details/86287476
@EnableAsync开启异步调用
@Async异步的方法
Springboot使用异步调用@Asynchttps://blog.csdn.net/kxj19980524/article/details/86750327
SpringMVC注解 这个准确的说应该也是属于spring的注解,SpringMVC其实没有注解.下面这块是属于SpringWeb模块的注解.
spring-web 提供了核心 HTTP 集成,包括一些便捷的 servlet 过滤器, Spring HTTP 调用,用于集成其它 web 框架的基础结构以及技术(Hessian,Burlap)。
spring-webmvc 是 Spring MVC 的一个实现。spriing-webmvc 依赖于 spring-web,这样包含它就会间接地添加 spring-web。不必显示添加 spring-web。
如果你不使用 Spring MVC ,但想要借助其它 Spring 支持的 web 相关技术的优势,那么你只需依赖 spring-web 。
import org.springframework.web.bind.annotation.*
@RestController这个注解是@ResponseBody和Controller的组合
@RequestParam注解
将该注解添加到方法的形参前面,不加注解的话只要把名字跟参数名写一致就能获取到,但有时候会获取不到值,只能读到参数的类型,eclipse在打包编译时在反射文件夹里特意加上了形参的名字,但是在企业开发不会加,因为加上虚拟机就跑的慢了,所有要加上注解.
@GetMapping,就相当于@RequestMapping(value = "/test1",method = RequestMethod.GET)查询的请求用这个注解
这是源码
@PostMapping就相当于@RequestMapping(value = "/test1",method = RequestMethod.POST),添加的时候使用这个注解
@DelectMapping删除时使用,@PutMapping修改时使用
@ControllerAdvice注解将作用在所有注解了@RequestMapping的控制器的方法上
@ExceptionHandler:用于全局处理控制器里的异常
一般用来处理统一异常处理,如下图,当加有@RequestMapping这类注解的方法抛出异常后,这个异常类会拦截并做出处理
SpringBoot注解
import org.springframework.boot.autoconfigure.*;
@SpringBootApplication启动注解,它是一个组合注解下面这三个是它里面的注解
@SpringBootConfiguration:当前类是一个配置类,就像xml配置文件,而现在是用java配置文件,效果是一样的
@EnableAutoConfiguration:这就是spring boot的核心功能,自动配置。就是根据当前引入的JAR包进行自动配置,比如:引入了spring boot的web模块,就会自动配置web.xml等与web项目相关的内容,所以这些配置都不需要我们自己配了
@ComponentScan:用注解配置实现自动扫描,默认会扫描当前包和所有子包,和xml配置自动扫描效果一样,这个是spring的注解.
这几个注解相关文章https://blog.csdn.net/kxj19980524/article/details/85156917
@RunWith(SpringRunner.class) @SpringBootTest 这俩是测试类上的注解
import org.springframework.boot.context.properties.*;
@ConfigurationProperties(prefix = "myClass")这个是读取springboot配置文件信息
这几个注解相关文章https://blog.csdn.net/kxj19980524/article/details/85120608
@EnableConfigurationProperties(value = { DBConfig1.class, DBConfig2.class })这个注解用来优先加载配置类的
详细文章https://blog.csdn.net/kxj19980524/article/details/86756251
SpringCloud注解
@EnableEurekaServer开启eureka服务
详细文章https://blog.csdn.net/kxj19980524/article/details/86775500
@EnableEurekaClient表示发布一个服务
@EnableDiscoveryClient也表示发布一个服务
它俩的区别是@
EnableEurekaClient只适用于Eureka作为注册中心,@EnableDiscoveryClient
可以是其他注册中心。
服务提供者https://blog.csdn.net/kxj19980524/article/details/86775875
@LoadBalanced开启ribbon负载均衡器
详细信息https://blog.csdn.net/kxj19980524/article/details/86775978
@EnableDiscoveryClient向注册中心上注册服务号
详细信息https://blog.csdn.net/kxj19980524/article/details/86840312
@EnableFeignClients//开启feign权限 @FeignClient(name = "app-buba-member")
详细信息https://blog.csdn.net/kxj19980524/article/details/86985898
@EnableHystrix开启Hystrix@HystrixCommand(fallbackMethod = "orderToUserInfoFallback")
详细信息https://blog.csdn.net/kxj19980524/article/details/87009660
@EnableConfigServer开启config-server @RefreshScope刷新注解
详细信息https://blog.csdn.net/kxj19980524/article/details/87557189
//开启注册网关@EnableZuulProxy
详细信息https://blog.csdn.net/kxj19980524/article/details/87802023
这个属于mybatis与spring整合的注解
import org.mybatis.spring.annotation.*;
@MapperScan(basePackages = {"com.buba.mapper"})扫描mapper层接口,放到启动类上,参数填接口包名
详细文章https://blog.csdn.net/kxj19980524/article/details/85232335