Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
spring boot=spring+springmvc
src/main/java
com.baizhi 主包
entity 子包
dao
service
controller
入口类(main):入口类必须存放在主包下和子包同级
src/main/resources
配置文件:配置文件的名字必须叫application存放位置必须存放在resources目录下 application.yml
properties
yml
yaml
src/test/java
src/test/resources
父级项目依赖 放置在dependencies标签之外
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>1.5.8.RELEASEversion>
parent>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
@SpringBootApplication
public class App {
public static void main(String[] args) {
//参数1:入口类的类对象
//参数2:main函数中的args
SpringApplication.run(App.class,args);
}
}
注意: springboot默认没有项目名
默认端口为8080
访问:http://localhost:8080/test/test
注意:
配置文件必须叫application
必须放置在resources下
必须出现绿树叶标识
严格遵循以下语法格式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fJbNf2FX-1594341918355)(assets/1564370377532.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xSlnBxFg-1594341918356)(assets/1564371030689.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BvAGQ9u8-1594341918358)(assets/1564371212208.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uqhzFgOy-1594341918359)(assets/1564371304752.png)]
@SpringBootApplication
作用范围 :放在类上
作用 :就是声明该类为springboot应用的入口类
组合注解 :一个注解含有多个注解的功能
@Configuration
@ComponentScan spring提出的
@EnableAutoConfiguration springboot提出的
spring 1.x
IOC xml
spring 2.x
注解 xml
spring 3.x
数据持久层使用xml 控制层和业务层使用注解
@Component
@Repository
@Service
@Controller 作用:声明当前对象为spring工厂的候选者 注解扫描才能将对象交由工厂管理
将一个对象加有工厂管理的方式有几种?
类上加注解配合包扫描
新型的配置方式 javaconfig java配置=注解+java代码
spring 4.x
java配置
spring 5.x
java配置
java配置的开发
A.配置类书写
@Configuration //@Configuratio等同于配置文件
public class UserConf {
//返回值 代表交给工厂管理的对象
//方法名 在工厂中该对象的唯一标识
@Bean // @Bean 等同于bean标签
public User getUser(){
User user = new User();
user.setId("1");
user.setName("xiaohei");
return user;
}
}
B.测试
//获取工厂对象
ApplicationContext a=new AnnotationConfigApplicationContext(UserConf.class);
//获取工厂中实例
String[] beanDefinitionNames = a.getBeanDefinitionNames();
for (String beanDefinitionName : beanDefinitionNames) {
System.out.println(beanDefinitionName);
}
@ComponentScan
使用范围:加在配置类上
使用作用:将含有
@Component
@Repository
@Service
@Controller 等注解的对象交由工厂管理
使用方式:
//排除 controller
@ComponentScan(basePackages = "com.baizhi.*",excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Controller.class)})
//只包含 controller
@ComponentScan(basePackages = "com.baizhi.*",includeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Controller.class)},useDefaultFilters = false)
@ComponentScan(basePackages = "com.baizhi.*",includeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Controller.class)},useDefaultFilters = false)
public class UserConf {
//返回值 代表交给工厂管理的对象 方法名 在工厂中该对象的唯一标识
@Bean
public User getUser(){
User user = new User();
user.setId("1");
user.setName("xiaohei");
return user;
}
}
使用范围:使用在类上 (springboot)入口类
作用 : 完成自动配置
自动配置:帮你完成一些组件的创建(原理)
4.@RestController
@Controller+@ResponseBody
作用:当前控制器的所有方法均返回json