- @SpringBootApplication :启动类。项目启动的入口(默认必须在最外层目录)
- @ComponentScan : 配置扫描路径
- @Configuration :配置spring容器(应用上下文)
- @EnableAutoConfiguration :启用自动配置
- @Value:基本属性值注入
- @PropertySource:自定义配置文件
- @Component/@ConfigurationProperties(prefix = “”):对象值注入
- @Mapper:添加了@Mapper注解之后这个接口在编译时会生成相应的实现类。
会自动的把 @Mapper 注解的接口生成动态代理类. - @RestController:将类注入到spring的IOC容器中,类中接口返回的数据(除了String)以JSON返回
- @PostMapping / @GetMapping:替换了@RequestMapping中的method = RequestMethod.POST/GET
- @reference 是 dubbo 的注解,用于消费端,表明使用提供端的某种服务。
- @EnableDubboConfiguration:启动类加,@EnableDubboConfiguration在生产端和消费端都加上此注解来表示使用dubbo服务
@RestController
@RestController包含@Controller和@ResponseBody
@RestController和@Controller的区别是 RestController的方法不能返回到jsp页面
@ResponseBody 的作用就是将java对象转成json格式的数据
@Controller 将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化。当然也有语义化的作用,即代表该类是充当Controller的作用
@ResponseBody 它的作用简短截说就是指该类中所有的API接口返回的数据,甭管你对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端,本人尝试了一下,如果返回的是String类型,则仍然是String。
@RestController
@RequestMapping("test")
public class SampleController {
@GetMapping
public Map testGet() {
return new HashMap<String, String>(){{
put("name", "springboot");
}};
}
@GetMapping(path = "str")
public String testGetStr() {
return "OK";
}
}
这部分代码对于Map返回则是JSON String,对于String则仍然是String
@ConfigurationProperties
可以将外部配置文件(比如applicaition.properties)加载进来,填充对象的对应字段的数据,然后供其他Bean使用。
prefix 前缀定义了哪些外部属性将绑定到类的字段上.
@Mapper和@MapperScan
@Mapper 一般我们用在接口上,使用 @Mapper,最终 Mybatis 会有一个拦截器,会自动的把 @Mapper 注解的接口生成动态代理类。代码如下:
@Mapper
public interface UserDAO {
@Select("select * from user where name = #{name}")
User find(String name);
@Select("select * from user where name = #{name} and pwd = #{pwd}")
/**
* 对于多个参数来说,每个参数之前都要加上@Param注解,
* 要不然会找不到对应的参数进而报错
*/
User login(@Param("name")String name, @Param("pwd")String pwd);
}
@Mapper 注解针对的是一个一个的类,相当于是一个一个 Mapper.xml 文件。
而一个接口一个接口的使用 @Mapper,太麻烦了,于是 @MapperScan 就应用而生了。
@MapperScan 配置一个或多个包路径,自动的扫描这些包路径下的类,自动的为它们生成代理类。
@SpringBootApplication
@MapperScan({"com.xttblog.mapper","com.xttblog.dao"})
public class XttblogApp {
public static void main(String[] args) {
SpringApplication.run(XttblogApp.class, args);
}
}
使用@MapperScan注解
通过使用@MapperScan可以指定要扫描的Mapper类的包的路径,比如:
(模糊匹配)
@SpringBootApplication
@MapperScan(“com.kfit.*.mapper”)
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}