美文网首页
Springboot

Springboot

作者: 安申 | 来源:发表于2020-05-17 10:09 被阅读0次

Springboot对于之前各种配置文件进行了注解简化

1.依赖(pom.xml)

<!-- 每个Springboot项目都应该继承 spring-boot-starter-parent -->

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.1.4.RELEASE</version>

<relativePath/>

</parent>

<!-- 坐标 -->

<groupId>com.atguigu.springboot</groupId>

<artifactId>SpringBoot-Auto</artifactId>

<version>0.0.1-SNAPSHOT</version>

<name>SpringBoot-Auto</name>

<description>Demo project for Spring Boot</description>

<!--  声明属性  -->

<properties>

<java.version>1.8</java.version>

</properties>

<!-- 依赖 -->

<dependencies>

<!-- 每个springBoot项目都有 spring-boot-starter -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter</artifactId>

</dependency>

<!-- Springboot对Junit的集成 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

</dependencies>

<build>

<plugins>

<!-- Springboot对maven的集成 -->

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

2.注解

(1)使用@Controller 注解

在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面

若返回json等内容到页面,则需要加@ResponseBody注解

(2)@RestController注解

相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面

(3)@Autowired(自动注入)

@Autowired表示会自动创建一个被修饰类的对象,这样就不需要再去通过new来创建了

(4)@RequestParam

public ResponseResult<List<User>(@RequestParam(required=false,defaultValue="0",value="page")int pageNum)

1)value:请求中传入参数的名称,如果不设置后台接口的value值,则会默认为该变量名。比如上面代码第一个参数如果不设置value="page",则前端传入的参数名必须为pageNum,否则在后台接口中pageNum将接收不到对应的数据(个人理解:首先,如果不使用@RequestParam,即不设置value,则请求url传入即为pageNum,即设置的整个形参名;然后,如果设置了value,则请求url传入必须为设置的page,其他无效)

2)required:该参数是否为必传项。默认是true,表示请求中一定要传入对应的参数,否则会报404错误,如果设置为false时,当请求中没有此参数,将会默认为null,而对于基本数据类型的变量,则必须有值,这时会抛出空指针异常。如果允许空值,则接口中变量需要使用包装类来声明。

3)defaultValue:参数的默认值,如果请求中没有同名的参数时,该变量默认为此值。注意默认值可以使用SpEL表达式,如"#{systemProperties['java.vm.version']}"

如果在请求中传入多个同名参数,比如:url?userName=zhl&userName=holley时怎么办?

其实此时传入的数据格式是:"zhl,holley",即多个数据之间使用逗号分隔开,在后台接口中可以使用数组或者list类型的变量来接收:

public String requestparam8(@RequestParam(value="userName") String []  userNames)

或者

public String requestparam8(@RequestParam(value="list") List list)

4)@MapperScan

指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类

添加位置:是在Springboot启动类上面添加,

@SpringBootApplication

@MapperScan("com.winter.dao")

public class SpringbootMybatisDemoApplication {

public static void main(String[] args) {

SpringApplication.run(SpringbootMybatisDemoApplication.class, args);

    }

}

5)@Configuration

@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法

6)@Bean

@Bean注解作用于方法上,用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理

未指定bean 的名称,默认采用的是 "方法名" + "首字母小写"的配置方式(太抽象了,理解不了)

7)@Value

① ${ property : default_value }

② #{ obj.property? :default_value }

第一个注入的是外部配置文件对应的property,第二个则是SpEL表达式对应的内容。 第二个则需要注入某个对象的属性

相关文章

网友评论

      本文标题:Springboot

      本文链接:https://www.haomeiwen.com/subject/oxthohtx.html