您现在的位置是:首页 >其他 >SpringBoot网站首页其他

SpringBoot

咸鱼吐泡泡 2023-05-31 16:00:03
简介SpringBoot

随着Spring不断的发展,涉及的领域越来越多,项目整合开发需要配合各种各样的文件,慢慢的Spring变得不那么容易使用,违背了最初的理念。SpringBoot正是在这样一个背景下慢慢被抽象出来的开发框架,目的是为了让大家更容易的使用Spring、更容易的集成各种常用的中间件、开源软件。SpringBoot是一个javaweb的开发框架,和SpringMVC类似,对比其他javaweb框架的好处就是简化开发。Java企业应用的发展过程J2EE->Spring->SpringBoot。

新建一个SpringBoot项目

pom.xml中的文件 

可以发现SpringBoot里面的核心依赖都在父工程中,我们在写或者引入SpringBoot依赖的时候,不需要指定版本的原因就是应为有这些版本仓库 。

 主程序

@SpringBootApplication

 这个注解标注这个类是一个springboot的应用

SpringApplication.run(NewProjectApplication.class, args);

这是SpringBoot的启动方法

SpringBoot自动配置底层原码分析SpringBoot SpringApplication底层源码分析与自动装配 - jimisun - 博客园 (cnblogs.com)

结论:

  1. 标注@SpringBootApplication注解的类会成为Spring的Bean

  2. SpringBoot默认会装配启动类路径的所有包下可装配的Bean;也就是说如果你把SpringBoot启动类放在一个单独的包中,则SpringBoot不会装配到你的其他Bean。这时候你就要使用@SpringBootApplicationscanBasePackages()方法进行另行配置。

  3. SpringBoot在启动时会自动加载Classpth路径下的META-INF/spring.factories文件,所以我们可以将需要自动配置的Bean写入这个文件。同样SpringBoot也会扫描Jar包中的META-INF/spring.factories文件;例如当导入spring-boot-starter起步依赖的时候,并且启用了自动装配注解@EnableAutoConfiguration,就将会替我们自动装配如如下类;如果满足条件的话。

    org.springframework.boot.autoconfigure.EnableAutoConfiguration=
    org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration,
    org.springframework.boot.autoconfigure.aop.AopAutoConfiguration,
    org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration,
    ......

配置文件

SpringBoot使用一个全局的配置文件,配置文件名称是固定的

  • application.properties
    • 语法结构:key=value
  • application.yml
    • 语法结构:key:空格 value
  • 配置文件yml和properties都可以获取到值,但是推荐使用yml
  • 如果要专门编写一个JavaBean来和配置文件进行映射,就直接使用@configurationProperties
  • 如果在业务中,只需要获取配置文件中的某个值,可以使用@value将这个自注入进来 

yaml语法

1.空格不能省略

2.一缩进来控制层级关系,只要是左边对齐的一列数据都是同一个层级的

3.属性和值的大小都是十分敏感的

静态资源的导入

狂神说SpringBoot10:Web开发静态资源处理 - 遇见狂神说 - 博客园 (cnblogs.com)

模板引擎Thymeleaf

模板引擎是一种前后端分离的技术,关于详细信息可以看之前的这篇博客 模板引擎Thymeleaf和监听器_thymeleaf 监听_咸鱼吐泡泡的博客-CSDN博客

根据 Thymeleaf的官方文档,在使用Thymeleaf的时候需要将所需要的依赖导入到pom.xml文件中,然后将需要制定的前端页面放入resource是目录下面的templates目录下面,在html页面中写相应的逻辑,比如像下面这样:

然后在java中调用模板引擎:

上面模板跳转的路径为test而不是/test.html的原因是Thymeleaf初始化方法里面就规定好了访问路径的前缀和后缀:

templateResolver.setPrefix("/WEB-INF/templates/");
templateResolver.setSuffix(".html");

 所以在写跳转htlm的时候不要写错了,写错了就访问不到:

关于Thymleaf的其他语法可以查看官方文档Tutorial: Using Thymeleaf

Spring中的各种注解 

@RequestMapping

@RequestMapping的作用是用来映射服务器访问的路径(可以用在类上也可以用在方法上)

@RequestMapping标识一个类:设置映射请求的请求路径的初始信息

@RequestMapping标识一个方法:设置映射请求请求路径的具体信息

@Repository

@Repository注解它用来标注访问层的类(Dao层),它表示一个仓库,主要用于封装对于数据库的访问。其实现方式与@Componnet注解相同,只是为了明确类的作用二设立的。即@Repository是@Component注解的一个派生品,与@Service和@Controller都可以理解为@Component注解的扩展。他们的作用都是在类上实例化bean,并把当前类对象的实现类交给spring容器进行管理。

@ResponseBody 

@ResponseBody注解的意思是返回一个非页面的数据

@ RestController

@RestController = @Controller + @ResponseBody 

@PostConstruct 

@PreDestroy

@PostConstruct和@PreDestroy两个作用于Servlet生命周期的注解,实现Bean初始化之前和销毁之前的自定义操作

@Scope 

详见@Scope注解 详细讲解及示例_扛麻袋的少年的博客-CSDN博客

@Configuration

@Configuration注解的作用是声明一个类为配置类

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。