SpringBoot学习

SSM:
Spring + SpringMVC + maybatis

SprigBOOT出现原因:
1.传统SSM框架在配置上相对较为复杂,对程序员开发不是特别友好
2.SSM框架内部之间的依赖可能会出现冲突,难以解决
3.项目测试每次都需要部署到tomcat

Springboot(微服务框架):
优点:上手快,配置文件少,适合企业做敏捷开发,并不需要每次手动部署到tomcat中

SpringBoot项目搭建:
1.创建MAVEN项目
1.在POM文件中需要添加如下内容:
– 表示当前的项目为Springboot的子项目,

org.springframework.boot
spring-boot-starter-parent
2.5.0

	<dependencies>
        <!--引入springboot的web支持-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
   </dependencies>
   作用:通过添加父项目,可以直接使用父项目中的依赖,如果想调用其中某部分依赖可以在<dependencies>中引用该部分即可
   		  通过这种方式避免程序员创建项目时导入大量的配置文件,提高项目开发效率

2.在java下创建 com.shujia包,并创建Application类,在类中需要添加
	@SpringBootApplication
	public class Application {
	    public static void main(String[] args) {
	        SpringApplication.run(Application.class,args);
	    }
	}

3.启动Springboot,需要查看日志信息中是否出现 Tomcat initialized with port(s): 8080 (http)
	如果出现表示当前Tomcat服务器给我们本地系统开通一个8080端口用于 程序访问

4.打开页面输入 localhost:8080

创建Springboot项目方式有很多
1.MAVEN方式创建
2.IDEA插件方式创建
3.网页方式创建 https://start.spring.io/

SpringBoot规则:
1.SpringBoot项目有且仅有一个入口类,并且入口类中需要包含Application名称
2.需要有一个main方法
3.Springboot入口类上必须要标记 @SpringBootApplication,并且在main方法中必须要执行SpringApplication.run(Application.class,args);
4.入口类必须和子包平级

5.子包:
	control:用于存放Springboot项目对外的提供的网页访问地址,一般用于存放URL映射类
				主要用于处理请求及响应,请求:处理前端的请求数据,并且调用服务层,将服务层返回的结果响应给前端
	service:主要用于给control层提供数据,并且需要对数据做处理
	dao: 用于创建数据库查询类
	entity/pojo/model: 创建数据库结果对象类

SpringBoot中的注解:
1.@SpringBootApplication注解:该注解主要用于修饰入口类,并且被其他注解修饰:
@Target({ElementType.TYPE}):主要用于修饰其作用范围
TYPE:类及接口
FIELD:枚举
METHOD:方法
PARAMETER:参数
CONSTRUCTOR:构造方法
PACKAGE:包

	@Retention(RetentionPolicy.RUNTIME):用于修饰其生命周期
		SOURCE:存在源码阶段,编译期丢弃
		CLASS: 存在于编译期
		RUNTIME: 存在于执行阶段

	@Documented  可以被JAVADOC所扫描到,并且可以生成对应的文档
	@SpringBootConfiguration:用于表示Springboot配置
	@EnableAutoConfiguration:用于表示自动加载Spring中的配置项,比如加载第三方配置: mysql 
	@ComponentScan: 表示用于扫描当前类及其子包中的所有配置信息及注解

2.@RestController
	该注解主要用于修饰Controller类,并且该注解是 @Controller @ResponseBody 这两个注解的组合注解
		@Controller:注解表示当前是一个Controller类
		@ResponseBody: 表示当前类是有返回体

3.@RequestMapping("路径")
	表示: 请求响应映射关系,并且响应路径规则为:
			 IP:PORT/路径
		  如果想要返回数据,那么可以在请求响应的方法中设置返回值类型,并处理返回值
	注解作用域:
		可以放至类上或方法上,当访问的方法对应的类有修饰时,那么请求的路径需要添加类的路径
			http://localhost:8080/controller/hello

SpringBoot配置文件:
1.配置文件名称:application.yml
2.加载插件 Spring boot assitant
3.修改默认端口:
server:
port: 8081
4. #用于配置访问的根路径
servlet:
context-path: /start/

5.修改生效的配置文件
	5.1 如果要配置其他的配置文件需要按照格式创建 application-xxx.yml 
	5.2 如果要使得application-xxx.yml 配置文件生效 那么需要在application.yml(主配置文件)中添加如下内容:

spring:
profiles:
active: xxx
5.3 如果要在项目启动时指定特定的配置文件可以在启动命令中添加如下:
–spring.config.location=配置文件路径
例如:–spring.config.location=E:\application-other.yml

注意:
由于项目开发过程中业务逻辑经常会发生变化,如果在Control层中直接通过new创建对象的方式调用类中的方法会导致开发风险较大(高耦合)

解决方法:
1.在Service层中针对业务逻辑创建其接口类
2.在Service层中创建一个impl包,并在在包中构建接口类的实现类
并且在实现类上添加@Service标签表示当前类为接口的实现类
当被添加的实现类在启动过程中,会创建其实现类的对象放至SpringBoot的容器中
3.如果对象存在于容器中,那么Springboot在扫描到@Autowired注解后去容器中寻找匹配的对象进行赋值,其匹配过程依赖的是Java中的多态
4.service层调用dao层数据和 control调用方式一样

创建自定义对象
用法:在项目中创建config包,在该包中创建Bean类,并在该类中构建对象,通过@Bean注解,将修饰的方法中返回的对象交给容器管理,如果后续要使用该对象,那么可以通过@Autowired注解从容器中获取对象实例

@Configuration
public class Beans {

@Bean
public Calendar calendar(){
    return Calendar.getInstance();
}

}

属性注入:
从配置文件中读取内容

1.在application.yml配置中写入
	变量名:值
2.在代码中通过@Value注解获取对应变量值
	@Value("${变量名}") :通过变量名获取对应值
	@Value("值"):直接给定字符串值

3.如果获取的是对象信息
	
	student:
	  student_name: 老六
	  age: 19
	  gender: 男
	  clazz: 文科一班
   那么读取配置文件
   方式一:
   		@Value("${student.clazz}")
   		String studentClazz;
   方式二:
   		1.在pojo层中创建对应对象的类
   		2.在类中添加注解
   			@Component //表示通用的对象创建注解
			@ConfigurationProperties(prefix = "student") // 配置注解,需要到配置文件中搜索,prefix表示对象前缀
		3.添加set方法和toString方法
		4.通过@Autowired注解从容器中获取对象
		5.返回页面
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张天靖09

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值