SpringBoot 初体验(一)

       主要是介绍了Spring和SpringMVC框架,小伙伴们在学习的过程中大概也发现了这两个框架需要我们手动配置的地方非常多,不过做JavaEE开发的小伙伴们肯定也听说过“约定大于配置”这样一句话,就是说系统,类库,框架应   该假定合理的默认值,而非要求提供不必要的配置,可是使用Spring或者SpringMVC的话依然有许多这样的东西需要我们进行配置,这样不仅徒增工作量而且在跨平台部署时容易出问题。OK,由于这些已经存在的问题,Spring      Boot应运而生,使用Spring Boot可以让我们快速创建一个基于Spring的项目,而让这个Spring项目跑起来我们只需要很少的配置就可以了。Spring Boot主要有如下核心功能:

1.独立运行的Spring项目

  Spring Boot可以以jar包的形式来运行,运行一个Spring Boot项目我们只需要通过java -jar xx.jar类运行。非常方便。

2.内嵌Servlet容器

  Spring Boot可以内嵌Tomcat,这样我们无需以war包的形式部署项目。

3.提供starter简化Maven配置

  使用Spring或者SpringMVC我们需要添加大量的依赖,而这些依赖很多都是固定的,这里Spring Boot 通过starter能够帮助我们简化Maven配置。

4.自动配置Spring 
5.准生产的应用监控 
6.无代码生成和xml配置

  OK,关于SpringBoot更详细的优缺点小伙伴们也可以自行搜索,我这里不再罗列,我们还是来看看代码。

1、创建WEB项目:

mvn archetype:generate -DgroupId=com.zzstxx.springboot -DartifactId=springboot-helloword -DarchetypeArtifactId=maven-archetype-webapp

目录结构:

2、添加依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.zzstxx.springboot</groupId>
	<artifactId>springboot-helloword</artifactId>
	<packaging>war</packaging>
	<version>1.0-SNAPSHOT</version>
	<name>springboot-helloword Maven Webapp</name>
	<url>http://maven.apache.org</url>
	<!-- 公共spring-boot配置,下面依赖jar文件不用在写版本号 -->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<!-- 自动包含以下信息: -->
		<!-- 1.使用Java6编译级别 -->
		<!-- 2.使UTF-8编码 -->
		<!-- 3.实现了通用的测试框架 (JUnit, Hamcrest, Mockito). -->
		<!-- 4.智能资源过滤 -->
		<!-- 5.智能的插件配置(exec plugin, surefire, Git commit ID, shade). -->
		<artifactId>spring-boot-starter-parent</artifactId>
		<!-- spring boot 1.x最后稳定版本 -->
		<version>1.4.1.RELEASE</version>
		<!-- 表示父模块pom的相对路径,这里没有值 -->
		<relativePath />
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>1.8</java.version>
	</properties>
	<dependencies>
		<!-- web -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<!-- 打包时候排除tomcat -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>
		<!-- 测试 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<!-- 只在test测试里面运行 -->
			<scope>test</scope>
		</dependency>
		<!-- spring boot 热启动 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<optional>true</optional>
		</dependency>
	</dependencies>

	<build>
		<finalName>spring-boot-hello-world</finalName>
		<plugins>
			<!-- jdk编译插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>${java.version}</source>
					<target>${java.version}</target>
				</configuration>
			</plugin>
			<!-- spring boot 热启动 -->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<fork>true</fork>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

3、Application.java 这是我们整个项目的入口类,这个类有一个@SpringBootApplication注解,这是整个Spring Boot的核心注解,它的目的就是开启Spring Boot的自动配置。

package com.zzstxx;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * 说明:建议放到根目录下面,主要用于做一些框架配置
 * 就是@SpringBootApplication:@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan等组合在一下
 */
@SpringBootApplication
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

 4、控制器类,对外提供服务的

package com.zzstxx.springboot;

import java.util.Arrays;
import java.util.List;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

//@RestController就是@Controller+@ResponseBody组合,支持RESTful访问方式,返回结果都是json字符串
@RestController
public class HelloWorldController {
	
	/**
	 * 读取application.properties中的配置信息
	 */
	@Value("${com.zzstxx.unitmc}")
        private String unitMc;

	@RequestMapping("/hello1/one")
	public String hello1() {
		return "Hello World周旭锋"+unitMc;
	}

	@RequestMapping("/hello2/two")
	public List<String> hello2() {
		return Arrays.asList(new String[] { "A", "B", "C" });
	}
}

 5、配置文件application.properties

com.zzstxx.unitmc=郑州索特信息技术有限公司

#日志信息
logging.path=e:/
logging.level.com.favorites=DEBUG
logging.level.org.springframework.web=INFO
logging.level.org.hibernate=ERROR

#访问端口,
server.port=8888
server.context-path=/springboot

原文链接:https://blog.csdn.net/u012702547/article/details/53740047

猜你喜欢

转载自zxf-noimp.iteye.com/blog/2421932