框架-SpringBoot环境搭建

SpringBoot环境搭建

环境

eclipse-jee-mars

JDK8

maven3.6

springboot1.5.10

git+github

1、创建maven项目

在这里插入图片描述

2、添加springboot约束

<dependencies>    
     <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
	 </dependency>	
</dependencies>

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>1.5.10.RELEASE</version>
	<relativePath />
</parent>

3、创建springboot启动类

在这里插入图片描述

package springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//@SpringBootApplication:标识这是springboot的启动类
@SpringBootApplication
public class SpringbootApplication {
	public static void main(String[] args) {
	       SpringApplication.run(SpringbootApplication.class, args);
	}
}

4、编写测试controller

在这里插入图片描述

控制类要写在启动类所在包或所在包的下级

package springboot.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class TestController {
	
	@RequestMapping("/hi")
	public @ResponseBody String hi() {
		return "hi, I'm springboot !";
	}
}

5、直接运行启动类测试

在这里插入图片描述

在浏览器中输入:http://localhost:8080/hi

在这里插入图片描述

6、简化部署

  • 添加插件(pom.xml)

    	<build>
    		<plugins>
    			<!-- 这个插件可以将springboot应用打包成一个jar包 -->
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    			</plugin>
    		</plugins>
    	</build>
    
  • 如果项目的打包方式为war,则改为jar(pom.xml)

    	<packaging>jar</packaging>
    
  • 项目右键->run as ->maven build…

在这里插入图片描述

  • 找到打包生成jar
    在这里插入图片描述

  • cmd运行:java -jar jar包名称

    C:\Users\Administrator>cd C:\Users\Administrator\Desktop
    C:\Users\Administrator\Desktop>java -jar 01s.jar
    

    http://localhost:8080/hi
    在这里插入图片描述

7、将该项目推送到github

  • 右键项目->team->shareProject:初始化本地仓库

在这里插入图片描述

在这里插入图片描述

  • 将本地仓库的文件推送到远程仓库:team->remote->push

    先将未追踪的文件add index,然后再push

在这里插入图片描述

分析

1、pom.xml文件

父项目
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.10.RELEASE</version>
		<relativePath />
	</parent>

它的父项目是:他来真正管理springboot应用里面的所有依赖版本。

    <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-dependencies</artifactId>
		<version>1.5.10.RELEASE</version>
		<relativePath>../../spring-boot-dependencies</relativePath>
	</parent>

springboot的版本仲裁中心;

以后我们导入依赖默认是不需要写版本的;(没有在dependencies里面管理的依赖自然需要声明版本号)

导入的依赖
        <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

spring-boot-starter-web:

​ spring-boot-starter:spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件。

​ springboot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starte,r相关场景的所有依赖都会导入进来,要用什么功能就导入什么场景的启动器。

主程序类、主入口类
package springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//@SpringBootApplication:标识这是springboot的启动类.
@SpringBootApplication
public class SpringbootApplication {
	public static void main(String[] args) {
	       SpringApplication.run(SpringbootApplication.class, args);
	}
}

@SpringBootApplication: springboot应用标注在某个类上,说明这个类是springboot的主配置类,springboot就应该运行这个类的main方法来启动springboot应用。它的实现如下:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
		@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
		@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
  • @SpringBootConfiguration:springboot的配置类,标志在某个类上表示该类是springboot的配置类。它的实现如下:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {

}

​ @Configuration:spring的注解,标识这个类为配置类相当于(bean.xml)

  • @EnableAutoConfiguration:自动配置包(自动扫描主入口类所在包下的所有类)

    @SuppressWarnings("deprecation")
    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Inherited
    @AutoConfigurationPackage
    @Import(EnableAutoConfigurationImportSelector.class)
    public @interface EnableAutoConfiguration {
    
    • @AutoConfigurationPackage:

      底层为:@Import(AutoConfigurationPackages.Registrar.class)

    ​ spring的底层注解,给容器中导入一个类。

    将主配置类(@SpringBootApplication注解的类)所在包以及下面所有的子包中的所有类导入到spring容器中。所以上诉controller需要写在主入口类所在包或所在包的下及包中,这样spring才能扫描到。

    • @Import(EnableAutoConfigurationImportSelector.class):导入哪些组件的选择器。

      ​ 将所有需要导入的组件以全类名的方式返回,这些组件将会被添加到容器中。(例如aop的配置,则有相关的自动配置类:org.springframework.boot.autoconfigure.aop.AopAutoConfiguration)

      ​ 会给容器导入非常多的自动配置类(×××AutoConfiguration):对事务、aop、mvc的配置……

在这里插入图片描述

​	从类路径:META-INF/spring.factories下获取需要导入的配置类。Libraries -> Maven Dependencies -> spring-boot-autoconfigure-1.5.10.RELEASE.jar -> META-INF ->spring.factories

​	J2EE的整体解决方案和自动配置都在spring-boot-autoconfigure-1.5.10.RELEASE.jar包中。

eclipse快速生成springboot项目

安装插件sts 直接 new->spring starter project即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值