初识SpringBoot
为什么要使用Springboot
因为Spring,Spring MVC需要使用大量的配置文件(xml文件),还需要配置各种对象,把使用的对象放到spring容器中才能够使用,同时spring集成各种框架,还需要了解其他框架的配置规则,对于开发很不方便.
SpringBoot就相当于不需要配置文件的Spring+SpringMVC,常用的框架和第三方库都已经配置好了,拿来就可以使用了.
Springboot开发效率高,使用很方便.
SpringBoot介绍
Springboot是Spring中的一个成员,可以简化Spring,SpringMVC的使用,他的核心还是IOC容器.
特点 :
- 创建Spring应用
- 内嵌Tomcat, jetty或者Undertow服务器
- 提供starter起步依赖来简化应用的配置,比如使用MyBatis框架,需要在Spring中配置MyBatis对象 SqlSessionFactory, dao的代理对象在SpringBoot的项目中,在pom.xml中加入依赖
- 尽可能的配置Spring和第三方的库,自动配置(就是把Spring中的第三方库中的对象都创建好,放在容器中,开发人员可以直接使用)
- 不用生成代码,不用使用xml去做配置
入门
创建SpringBoot项目
-
第一种方式,使用Spring提供的初始化器,即向导创建SpringBoot应用
创建好之后文件的结构如下 :
使用的地址是https://start.spring.io -
使用国内地址
前面的创建方式使用的地址是https://start.spring.io是国外的地址,经常会访问超时
使用国内的镜像地址 https://start.springboot.io
这个地址网络访问比较稳定
实际上我们可以通过浏览器直接访问start.springboot.io来实现项目的创建
这里的信息和idea中的信息一样,完成后会在本地下载一个压缩包,这个压缩包和idea中创建的项目结构相同. -
maven的方式创建
创建maven项目,同时加入父依赖和start依赖,同时在resource目录下创建文件夹static和templates和springboot的配置文件application.properties即可
相关注解
@SpringBootApplication
在创建SpringBoot的项目之后,会为我们生成一个Application类,这个类是SpringBoot的启动类
这个启动类上有一个注解@SpringBootApplication
点进这个注解观察
可以发现该注解是一个复合注解
这个符合注解由三个注解组成
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
@SpringBootConfiguration
这个注解的详细信息如下
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {
@AliasFor(
annotation = Configuration.class
)
boolean proxyBeanMethods() default true;
}
这个注解上有@Configuration注解,表示这个注解标注的类可以看成是一个配置文件,所以Application这个类有配置文件的功能.
给出例子:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.zjb.vo.Student;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
// Application这个类由@SpringBootApplication修饰,该注解为复合注解,
// 复合了@Configuration这个注解,表示该类可以代表一个配置文件,完成注入bean等xml的操作
// 声明对象,对象能够注入到容器中
@Bean
public Student myStudent() {
return new Student();
}
}
@EnableAutoConfiguration
该注解的作用为启用自动配置,把java对象配置好,注入到Spring容器中,例如把MyBatis的对象创建好,放入到容器中.
@ComponentScan
该注解为组件扫描器的注解,可以找到注解,根据注解的功能创建对象赋值等.
这个组件扫描器,默认扫描的包是@ComponentScan所在的类和子包中的所有类,不在这个范围内,就得写路径了
看下面这个例子 :
helloSpringBoot就在默认的范围内,该类的信息如下 :
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloSpringBoot {
@RequestMapping("/hello")
@ResponseBody
public String helloSpringBoot() {
return "欢迎使用springboot框架";
}
}
该类中有注解修饰,如果是SSM项目,没有组件扫描器将不能识别这个注解,但是这个类在默认范围内,所以可以访问到.
在浏览器输入http://localhost:8081/hello
可以访问到该视图层
注意 :
修改SpringBoot内置tomcat服务器的端口号,只需要在application.properties文件中加入
server.port=8081
即可