美文网首页
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