Spring Boot 学习笔记

// 没错,在粗略看完JAVA后,开始尝试Spring Boot了。

1.Spring Boot注解。

@SpringBootApplication :

往往写在与项目同名的入口类里面。这个是整个项目启动的地方.

里面包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot 扫描到Configuration类并把它加入到程序上下文。

@SpringBootApplication
public class PanbolernningSpringApplication {

	public static void main(String[] args) {
		SpringApplication.run(PanbolernningSpringApplication.class, args);
	}
}

@Configuration: 等同于spring的XML配置文件;;使用Java代码可以检查类型安全。

//记得补充,什么时候用。

在Swagger配置的时候,要添加@Configuration和@EnableSwagger2

@Configuration
@EnableSwagger2
public class SwaggerConfig {
	
	@Bean
	public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo"))
                .paths(PathSelectors.any())
                .build();
    }
	
	private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("panboTest项目的 API接口文档")
                .description("官网:http://xxxxxx.com.cn")
                .termsOfServiceUrl("http://xxxxxx.com.cn")
                
                .version("1.0")
                .build();
    }

@RestController:

是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器。

在swagger里面需要添加API接口的类文件之前,基本上都有这个注解。

换句话说,Controller前面都要加。(必须项目)


@Controller
@ResponseBody
public class helloController {}

@Autowired

自动导入。建议用@Resource  //它们两者的区别是什么?补充上:

@Resource 非常新,是JSR-250规范定义的注解。

@Resource注解在字段上,这样就不用写setter方法了,并且这个注解是属于J2EE的,减少了与spring的耦合。这样代码看起来比较优雅。

@Resource后面没有任何内容,默认通过name属性去匹配Bean,找不到再按Type

如果指定了name或者Type,则根据指定的name和type去匹配bean,任何一个不匹配都会报错。

@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:

@Autowired()@Qualifier("baseDao")
private BaseDao baseDao;

 

这是一个很神奇的,必须的,常用的注解。

基本上,所有的 声明的变量前面都添加,//好像是声明接口?。。。。应该是接口吧。?

@Resource
private girlRepository girlrepository;
@Resource
private girlService girlservice;

@Value

从yml或者property获取值得时候,(往往是初学者,比如我在自学的时候。)

可以说不用 @Value("${var}")这个注解时候,就必须添加。

自测时候是这两个。

@Value("${cupSize}")
private String cupSize;


//yml里面添加
cupSize: B

@ResponseBody

@ResponseBody一般需要配合@RequestMapping使用。

为什么?

 

@RequestMapping返回值往往是解析为跳转路径,两个相结合后,表示该方法的返回结果是Json数据。

先来看一段代码。

如果不加@ResponseBody

	@RequestMapping("hello")
		//@ResponseBody
	    public String hello(){
	        return "hello world";
	    }

加了之后:

 

@Controller:用于定义控制器类,在spring 项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),一般这个注解在类中,通常方法需要配合注解@RequestMapping。

 

@Component:当组件不知道是哪一类的时候,加这个就完事了。

 

@RequestParam:用在方法的参数前面。 

@PathVariable:路径变量。

//这俩啥区别。。。

 

网上说的那些没听懂。。。URL传参的用PathVariable?

 

public Girl girlUpdate(@PathVariable("id") Integer id,
			@RequestParam("cupSize") String cupSize,
			@RequestParam("age") Integer age){}

注:这个博客介绍的非常清楚

https://blog.csdn.net/chuck_kui/article/details/55506723

首先 上两个地址:

地址① http://localhost:8989/SSSP/emps?pageNo=2

地址② http://localhost:8989/SSSP/emp/7

 

如果想获取地址①中的 pageNo的值 ‘2’ ,则使用  @RequestParam ,

如果想获取地址②中的 emp/7 中的 ‘7 ’   则使用 @PathVariable

不失一般性:

在RequestMapping中创建的是方法时候,用@RequestParam

@RequestMapping("/emps")
	public String list(@RequestParam(value="pageNo",required=false,

在RequestMapping中创建方法后面跟着参数时候,用@PathVariable

@RequestMapping(value="/emp/{id}",method=RequestMethod.GET)
	public String edit(@PathVariable("id")Integer id,Map<String , Object>map){

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值