您现在的位置是:首页 >其他 >SpringBoot网站首页其他
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)
结论:
-
标注
@SpringBootApplication
注解的类会成为Spring的Bean -
SpringBoot默认会装配启动类路径的所有包下可装配的Bean;也就是说如果你把SpringBoot启动类放在一个单独的包中,则SpringBoot不会装配到你的其他Bean。这时候你就要使用
@SpringBootApplication
的scanBasePackages()
方法进行另行配置。 -
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注解的作用是声明一个类为配置类