SpringBoot配置与应用 SpringBoot与(Spring和springmvc的区别)
1.什么是springboot? springboot与springmvc的区别,springboot代替了springmvc? ssm包含了spring与springmvc还有mybatis.
用到几个注解:
@SpringBootApplication | 标记当前类是一个springboot启动类,注意一个应用只有一个启动类; 放在类名上边 |
---|---|
@RestController | 等价于 @controller 和 @ResponseBody 放置在类名上边 |
@RunWith(SpringRunner.class) | |
@SpringBootTest | // 标明当前类是springboot测试类, 注意测试类一定要和启动类在同一个包下边 |
– | – |
校验邮箱格式 | |
@ConfigurationProperties(prefix = “student”) | 批量的从配置文件中读取配置文件并配值,属性必须匹配. 而且需要有get &set方法 |
@Validated | 开启校验,@Validated 一定要和 @ConfigurationProperties 配合 |
– | – |
@EnableConfigurationProperties | 让当前配置文件生效 |
@Component | 把东西注入到容器中去 |
– | – |
@PropertySource(“classpath:mysql.properties”) | 自定义读取配置文件 |
---|---|
@Configuration | 编写自定义配置类 ///定义一个配置类 |
@ Configuration | 定义一个配置类 |
– | – |
@ Bean: | 进行组件配置 |
@RunWith(SpringRunner.class) | |
@SpringBootTest | // 表明当前类是spring boot 测试类 注意测试类一定要和 启动类同一个包下面 |
约定 大于 配置
springboot相当于一个外壳,承载者,把spring框架封装在外壳里边,也就是说springboot包含了ssm中所有的功能.
1.mybatis 零配置
2.shiro 权限管理,也与springboot兼容
3. springboot兼容springcloud微服务
4. redis 单独配置十分麻烦, springboot兼容redis不需要再配置,0配置
2.优点:
1.简化开发,可以快速构建独立的spring应用
2.直接嵌入了Tomcat,Jetty和Undertow服务器.(无需部署war文件)
3.提供依赖启动器简化构建配置
4.极大程度的自动化配置spring和第三方库
5.提供生产就绪功能
6.极少的代码生产和xml配置
springboot中没有 xml代码…
- springBoot 是基于spring框架开发的全新框架,其设计目的是简化新Spring应用打的初始化搭建,和开发过程.
- SpringBoot 整合了许多框架和第三库配置,几乎可以达到"开箱即用".
3.Springboot和SpringMVC的区别
1.spring框架 是一个家族性fremwork的框架,
2.SpringMVC提供了一种轻度耦合的方式来开发web应用.
3.SpringBoot实现了自动配置,降低了项目搭建的难度
总结: spring是一个"核心",springMVC是基于Spring的一个MVC框架,SpringBoot 是基于Spring4条件注册的一套快速开发整合工具.
2.使用springboot创建工程
2.1搭建工程
2.2引入pom.xml所需springboot依赖
<!--引入父依赖--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.3.RELEASE</version><relativePath/></parent><dependencies><!-- web相关依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
<!-- test相关依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency></dependencies>
2.3如何把controller加入容器
spring配置文件 如果同时存在,优先使用application.properties配置文件
resouces中的配置文件有两种:application.properties配置文件,application.yaml配置文件
第一种:application.properties配置文件
引入依赖
<!-- Spring Boot提供的配置处理器依赖 提醒依赖配置文件,自动提醒L 1.添加依赖, 2.编译--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency>
MyApplication.properties
#配置端口号
#server.port = 8081student.id = 19
student.name = xiangqian
student.sex = F
student.age = 18
student.height=180
student.hobby=slepp,playname,run
student.course.math=147
student.course.english=129
Student
package com.aaa.springboot.entity;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;import java.util.List;
import java.util.Map;/*** ClassName:Student* Package:com.aaa.springboot.entity* Description:** @date:2020/7/27 10:44* @author:lee907463383@qq.com*/
@Component //注入容器
@ConfigurationProperties(prefix = "student") //读取全局默认 配置文件前缀为student
public class Student {private int id;private String name;private String sex;private int age;private int height;//爱好private List<String> hobby;//成绩private Map<String,String> course;@Overridepublic String toString() {return "Student{" +"id=" + id +", name='" + name + '\'' +", sex='" + sex + '\'' +", age=" + age +", height=" + height +", hobby=" + hobby +", course=" + course +'}';}public List<String> getHobby() {return hobby;}public void setHobby(List<String> hobby) {this.hobby = hobby;}public Map<String, String> getCourse() {return course;}public void setCourse(Map<String, String> course) {this.course = course;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getHeight() {return height;}public void setHeight(int height) {this.height = height;}
}
MyApplicationTest
package com.aaa.springboot;import com.aaa.springboot.controller.FirstController;
import com.aaa.springboot.entity.Student;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;/*** ClassName:MyApplicationTest* Package:com.aaa.springbooot* Description:** @date:2020/7/27 10:28* @author:lee907463383@qq.com*/
@RunWith(SpringRunner.class)
@SpringBootTest // 标明当前类是springboot测试类, 注意测试类一定要和启动类在同一个包下边
public class MyApplicationTest {@Autowiredprivate FirstController firstController;@Autowiredprivate Student student;@Testpublic void testFirest(){System.out.println("firstController:"+firstController);}@Testpublic void studentTest(){System.out.println("student:"+student);}}
第二种:application.yaml配置文件
**yaml配置
什么是ymal?
YAML文件格式是Spring Boot支持的一种JSON超集文件格式。
相较于传统的Properties配置文件,YAML文件以数据为核心,是一种更为直观且容易被电脑识别
的数据序列化格式。
application.yaml文件的工作原理和application.properties一样。
**
4.使用@PropertySource加载自定义的配置文件
1.新建配置文件mysql.properties
mysql.driver=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/student_db
mysql.username=root
mysql.password=123456
2.加载配置文件
@Component
@EnableConfigurationProperties //让当前配置文件生效
@PropertySource("classpath:mysql.properties") //自定义读取配置文件
@ConfigurationProperties(prefix = "mysql")
public class MysqlProperties {private String dirver;private String url;private String username;private String password;@Overridepublic String toString() {return "MysqlProperties{" +"dirver='" + dirver + '\'' +", url='" + url + '\'' +", username='" + username + '\'' +", password='" + password + '\'' +'}';}public String getDirver() {return dirver;}public void setDirver(String dirver) {this.dirver = dirver;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}
5.@Configuration编写自定义配置类
src/main/java/com/aaa/springboot/config/Config.java
@Configuration:定义一个配置类
@Configuration // 表明当前类是一个 配置类 就把整个类当成 bean.xml
public class Config {@Bean("studentService")// 将当前方法创建的对象 放入到容器中 <bean></bean> 配置第三方插件使用StudentService getStudentService(){return new StudentService();}
}
src/main/java/com/aaa/springboot/service/StudentService.java
public class StudentService {public Student finStudentById(int id){Student student = new Student();student.setId(id);return student;}}
测试
public class MyApplicationTest {@Autowiredprivate StudentService studentService;@Testpublic void studentServiceTest(){System.out.println("studentService:"+studentService.finStudentById(8888));}}
后期主要就是学习springboot的自动装配和启动的方式
SpringBoot配置与应用 SpringBoot与(Spring和springmvc的区别)相关推荐
- Spring与SpringMVC的区别
Spring是IOC和AOP的容器框架,SpringMVC是基于Spring功能之上添加的Web框架,想用SpringMVC必须先依赖Spring. 简单点的话可以将SpringMVC类比于Strut ...
- springmvc和php,spring和springmvc的区别
Spring与SpringMVC的区别 Spring是IOC和AOP的容器框架,SpringMVC是基于Spring功能之上添加的Web框架,想用SpringMVC必须先依赖Spring. 简单点的话 ...
- Spring是什么?SpringMVC是什么?Spring和springMVC的区别?
Spring:Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. Spring的两大核心AOP与IOC,可以单独用于任何应用,包括与Struts等MVC框架与Hibernat ...
- Spring和SpringMVC的区别
spring 是是一个开源框架,是为了解决企业应用程序开发,功能如下◆目的:解决企业应用开发的复杂性◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能◆范围:任何Java应用简单 ...
- SpringBoot配置属性之NOSQL
SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...
- SpringBoot配置属性之MQ
SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...
- SpringBoot配置属性之DataSource
SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...
- SpringBoot配置属性之Server
SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...
- Springboot配置SSL(https)
Springboot配置SSL(https) SpringBoot可以通过在application.properties或application.yml配置文件中配置各种server.ssl.*属性来 ...
最新文章
- Java双刃剑之Unsafe类详解
- 什么是Python的var_dump()的Python等价物? [重复]
- 《Verilog HDL那些事儿》PDF 3.0版本发布
- 禁止多媒体文件的预览功能
- IntelliJ IDEA 的 Project Structure 窗口中的 Artifacts 勾选 Include in project build
- 程序员在网吧办公是什么感觉?网友:在被打的边缘疯狂试探!
- 拓端tecdat|R语言改进的股票配对交易策略分析SPY-TLT组合和中国股市投资组合
- 用ISA 2004发布内部FTP服务器
- Microsoft Teams 当前页面脚本发生错误/例外被抛出且未被接住
- Java 暴力破解zip压缩包密码
- msfvenom生成muma
- EasyPlayer播放H.265的HLS视频流出现加载异常的问题分析及解决方法
- burp直接抓取windows微信小程序与公众号数据包
- 商业模式新生代_商业模式新生代——商业模式设计
- 送你一份perl书单
- 赛联区块链教育:对区块链技术做个普及
- 微信客户端配置信息存储解决方案
- intrins.h 简介
- # 驱动安全编码排查指南
- testng和idea_TestNG,FEST和CDI
热门文章
- [C#]使用Process的StandardInput与StandardOutput写入读取控制台数据
- Hive 实现 IN 和 NOT IN 子句 和 LEFT SEMI JOIN 应用
- css代码文字破碎js特效
- 电脑公司GHOST WIN7 装机旗舰版 2013 09
- maven打开edge的闪退
- 微信公众号文字该如何排版?
- 简单教你贴-iPhone新一代超薄卡贴
- 360 android框架,360 董福源 - Android框架虚拟化实战.pdf
- 电影: 嘲笑过片名后,我哭着看完这部片
- python自动修图软件_带走!20 个提升效率的神器工具