来源于微信公众号------------ Java大讲堂
springboot核心注解
@SpringBootApplication内部注解包含
@SpringBootConfiguration:继承@Configuration,会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名,
之后调用直接注入该定义的bean即可
@EnableAutoConfiguration自动将@Configuration标注的类进行加载到spring的IOC容器中
@ComponentScan自动扫描并加载符合条件的组件或bean可以通过basePackages扫描指定bean的位置,不扫描默认启动类所在包和他包下来的类下
Controller 相关注解
@Controller 控制器,处理http请求
@RestController = @Controller + @ResponseBody 将方法返回的对象直接在浏览器上展示成json格式
@RequestBody 浏览器传参放在请求体 ,后台接收使用转为对象形式
@RequestMapping 用来写请求地址
@GetMapping 用于将HTTP get请求映射到特定处理程序的方法注解
取请求参数值
@PathVariable:获取url中的数据,用于restful风格的请求地址
@RequestParam:获取请求参数的值,默认参数都是必填的
注入bean相关
@Repository DAO层注解 mybatis的使用@Mapper注解
@Service、@Component可以结合@Scope使用,确定对象bean的模式。默认为单例模式
@Scope中value属性设置:
singleton 表示该bean是单例的。(默认)
prototype 表示该bean是多例的,即每次使用该bean时都会新建一个对象。
request 在一次http请求中,一个bean对应一个实例。
session 在一个httpSession中,一个bean对应一个实例。
@Bean产生一个bean的方法,并且交给Spring容器管理
@Autowired 自动导入,可以实现Bean的自动注入,可以使用在构造函数、方法、方法参数、类字段
导入配置文件
@PropertySource注解用于查找配置文件的配置属性,通常结合@ConfigurationProperties(用于确定属性的前缀注入prefix属性)一起使用
引入单个properties文件:
@PropertySource(value = {“classpath : xxxx/xxx.properties”})
引入多个properties文件:
@PropertySource(value = {“classpath : xxxx/xxx.properties”,“classpath : xxxx.properties”})
@ImportResource导入xml配置文件
引入单个xml配置文件:@ImportSource(“classpath : xxx/xxxx.xml”)
引入多个xml配置文件:@ImportSource(locations={“classpath : xxxx.xml” , “classpath : yyyy.xml”})
取值:使用@Value注解取配置文件中的值
@Value(“${properties中的键}”)
private String xxx;
@Import 导入额外的配置信息,功能类似XML配置的,用来导入配置类,可以导入带有@Configuration注解的配置类
例如:
@SpringBootApplication
@Import({SmsConfig.class})
publicclass DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
事务注解 @Transactional
此类事务注解属于声明书事务,一般用于service层,利用的是AOP原理
全局异常处理
@ControllerAdvice 统一处理异常,注解定义全局异常处理类
@RestControllerAdvice
@ExceptionHandler 注解声明异常处理方法
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
@ResponseBody
String handleException(){
return "Exception Deal!";
}
}