这是我参与更文挑战的第21天,活动详情查看: 更文挑战
1、@SpringBootApplication
这个注解是SpringBoot框架最重要核心的注解,用在主类上面,作用是定义Spring Boot的项目开启啦,以及各项能力的启动,用来标识这个是Spring Boot项目,一般就是插入在web层中的主类里面。
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public static void main(String[] args) {
SpringApplication.run(TestWebApplication.class,args);
}
2、@MapperScan
在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类。
加在启动类上,指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类。
加在DataSourceConfig上,指定数据来源,配置文件等。
3、@Configuration
配置类的定义,指示对象是Bean定义的来源,如用于mysql、redis等中间件的配置文件中,Bean可以通过这个注解被发现。
4、@ComponentScan
组件扫描。ComponentScan做的事情就是告诉Spring从哪里找到bean。
告诉Spring哪个packages的用注解标识的类会被spring自动扫描并且装入bean容器。
@ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中。
5、@Repository
作用于持久层。
使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。
@Repository(value="testDao")
该注解是告诉Spring,让Spring创建一个名字叫“testDao”的TestDaoImpl实例。
当Service需要使用Spring创建的名字叫“testDao”的TestDaoImpl实例时,就可以使用@Resource(name = "testDao")注解告诉Spring,Spring把创建好的testDao注入给Service即可。
6、@Service
注解属于业务逻辑层,service或者manager层,修饰Service层的文件。
@Service public class UserService {
}
7、@RestController
原来返回json需要@ResponseBody和@Controller配合。
即@RestController是@ResponseBody和@Controller的组合注解。
8、@ResponseBody
用该方法是将返回结果写入到http返回结果中,如果使用了@RequestMapping,会先解析成跳转路径,但是加上了@responsebody,就可以将结果作为json结果返回。
9、@Component
注解@Component位于控制器、服务、仓储的顶级,它是任何Spring托管组件的通用构造型注解,这也就意味着,如果要在应用程序上下文中注册类,我们可以使用@Component注解进行注册。
10、@Bean
@Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。添加的bean的id为方法名,意思是产生一个bean,并交给spring管理。
11、@AutoWired
它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除set ,get方法。
12、@Qualifier
在需要自动注入java bean时,如果注入的是一个接口,而这个接口又有多个实现类,则会报错。
解决办法是在实现类上加@Service("别名"),在注入接口上增加@Qualifier("别名") 和@Autowired注解。
来看下源码:
public @interface Qualifier {
String value() default "";
}
13、@RequestMapping
处理请求地址的映射
用于类和方法上,类上的 “请求地址” 是方法上的 “请求地址” 的父地址。一般会在类上设置该文件中所有接口的归类。比如下面的例子就表示这个类里都是test接口。
@RequestMapping(value = "/test")
@RestController
public class TestController {
@RequestMapping(value = "/getList", method = RequestMethod.POST)
public Result getList(@RequestBody TestQuery query) {
return null;
}
}
14、@RequestParam 和 @RequestBody
用在参数前面,表示方法请求体。
public Result getList(@RequestBody TestQuery query)
@RequestParam String a =request.getParameter('a')。
15、@PathVariable
获取路径中的参数
16、@Profiles
该注解配合@Configuration可以使用java代码指定不同profile的配置,可以注解在类上,也可以注解在@Bean的方法上。
17、@ConfigurationProperties
读取配置文件中的属性,就比如像 datasource 文件。
@ConfigurationProperties(prefix = "test.data")
public class DataSourceProperty {
/**
* 数据库地址
*/
private String url;
/**
* 账号
*/
private String name;
}
# 数据库
test.data.url=
test.data.name=