java技术---构建第一个SpringBoot工程(03)

1.本人这里使用myeclipse工具搭建,具体创建maven不作详细说明
2.搭建的maven项目目录结构如下:
在这里插入图片描述

(1)在src/main/java文件夹下:创建开发所需的包
    <1>entity,dao,mapping,service,serviceimpl,controller,springbootApplication
    <2>其中springbootApplication为程序的入口
(2)在src/main/resources文件夹下:创建项目所需要的所有资源配置
    <1>statics 静态资源
    <2>templates 模板资源
    <3>application.* 配置文件(分为properties文件和yml文件两种格式)
(3)pom.xml文件为基本的依赖管理文件    

3.主要讲解基于springboot的pox.xml配置注意事项

  对于配置pom.xml文件我们要做三步操作:
 (1)设置spring boot的parent(继承父包):在pom.xml中引入spring-boot-starter-parent
      <1>它可以提供dependency management,也就是依赖管理
      <2>Spring Boot的版本仲裁中心,控制了所有依赖的版本号
      <3>好处:引入以后在声明其它dependency的时候就不需要version了
      <!-- 1、springboot核心配置:设置Spring boot的parent -->  
      <parent>  
          <groupId>org.springframework.boot</groupId>  
          <artifactId>spring-boot-starter-parent</artifactId>  
          <version>1.5.6.RELEASE</version>  
      </parent>2)导入spring boot的web支持:需要在pom.xml中引入spring-boot-starter-web,包含了web开发的许多特性:
       <1>spring-webmvc、spring-web、jackson、validation、tomcat、starter等web开发的特性
       <2>web的场景,自动引入了web模块开发需要的相关jar包
       <!-- 2、导入Spring boot的web支持 -->  
     <dependencies>  
            <dependency>  
               <groupId>org.springframework.boot</groupId>  
              <artifactId>spring-boot-starter-web</artifactId>  
             </dependency>  
    </dependencies>3)添加Spring boot的插件:
      <1>如果我们要直接Main启动spring,那么以下plugin必须要添加,否则是无法启动的
      <2>如果使用maven的spring-boot:run的话就不需要此配置
      <!-- 3、添加Spring boot的插件 -->  
      <plugin>  
         <groupId>org.springframework.boot</groupId>  
         <artifactId>spring-boot-maven-plugin</artifactId>  
      </plugin>
      <!-- 方法一:解决使用Maven > Update project的时候JDK版本都恢复成1.5的问题 -->
	  <plugin>
		 <groupId>org.apache.maven.plugins</groupId>
		 <artifactId>maven-compiler-plugin</artifactId>
		 <version>3.5.1</version>
		   <configuration>
			 <source>1.8</source>
			 <target>1.8</target>
			 <encoding>UTF-8</encoding>
		   </configuration>
	   </plugin>
	  <!-- 方法二:解决使用Maven > Update project的时候JDK版本都恢复成1.5的问题 -->
	   <!-- 属性设置 -->
     <properties>
		<!-- 编译字符编码为utf-8 -->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<!-- 输出字符编码为UTF-8  -->
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<!-- jdK版本 -->
		<java.version>1.8</java.version>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<fastjson.version>1.2.24</fastjson.version>
	</properties>4)一个正常springboot项目启动,依赖的基础包:
<dependencies>
 <!--springboot web模块支持,自动引入了web模块开发需要的相关jar包-->
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
   <!--springboot程序测试依赖,如果是自动创建项目默认添加-->
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
   </dependency>
</dependencies>	

4.以上三步均配置完毕后得完整的pom.xml文件如下:

  <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/xsd/maven4.0.0.xsd">
    <!-- pom模型版本 -->                        
	<modelVersion>4.0.0</modelVersion>
	<!-- 项目信息 -->
	<groupId>com.xxx</groupId><!-- 项目唯一标识 -->
	<artifactId>SpringBootTest</artifactId><!-- 项目名 -->
	<version>0.0.1-SNAPSHOT</version><!-- 版本 -->
	<packaging>war</packaging><!-- 打包方式 (pom,war,jar) -->
	<name>SpringBootTest</name><!-- 项目的名称, Maven 产生的文档用 -->
	<url>http://www.example.com</url>
      <!-- 父级项目 -->
    <parent>
        <!-- 依赖管理,引入以后在声明其它dependency的时候就不需要version -->
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.3.0.RELEASE</version>
		<relativePath />
	</parent>
	<!-- 属性设置 -->
     <properties>
		<!-- 编译字符编码为utf-8 -->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<!-- 输出字符编码为UTF-8  -->
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<!-- jdK版本 -->
		<java.version>1.8</java.version>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<fastjson.version>1.2.24</fastjson.version>
	  </properties>
       <!-- 依赖关系 -->
	  <dependencies>
		<!-- 对web开发的支持,包含了spring webmvc和tomcat等web开发的特性 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
		</dependency>
		<!-- DevTools in Spring Boot 项目热部署 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>
	</dependencies>
	<!-- 编译 -->
	<build>
	   <!-- 插件 -->
		<plugins>
		    <!-- maven插件 -->
			<!-- 如果我们要直接Main启动spring,那么以下plugin必须要添加,否则是无法启动的。-->
			<!-- 如果使用maven的spring-boot:run的话就不需要此配置 -->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
	</project>

5.编写启动类:两种写法

  (1)Application类+controller类 (注意Application类放到controller层)
    /** 
     * 注解@SpringBootApplication指定项目为springboot,由此类当作程序入口,自动装配 web 依赖的环境; 
     */  
    @SpringBootApplication  
    public class Application {  
        // 在main方法中启动一个应用,即:这个应用的入口  
        public static void main(String[] args) {  
            // TODO Auto-generated method stub  
            SpringApplication.run(Application.class, args);  
        }  
    }  
    @RestController //是spring4里的新注解,是@ResponseBody和@Controller的缩写 
    @RequestMapping("/Hello")  
    public class HelloSpringBoot {  
    @RequestMapping("/hello")  
    public String hello(){  
        return "this is Spring boot demo!";  
    }  
    } 
    (2)在controller层
    @SpringBootApplication // Spring Boot项目的核心注解,主要目的是开启自动配置  
    @RestController // 标明这是一个SpringMVC的Controller控制器  
     @RequestMapping("/Hello")  
    public class HelloApplication {  
        @RequestMapping("/hello")  
        @ResponseBody  
        public String hello() {  
            return "hello world";  
        }  
        // 在main方法中启动一个应用,即:这个应用的入口  
        public static void main(String[] args) {  
            SpringApplication.run(HelloApplication.class, args);  
        }  
    }  

6.经过上面的步骤,就已经搭建了一个最简单的SpringBoot工程

(1)在有@SpringBootApplication注解的main方法中运行,启动无误后在浏览器访问即可
(2)例如:输入localhost:8080/Hello/hello,界面输出“hello world”,说明搭建成功
(3)一般在搭建基于SpringBoot的web工程时,注意以下几点:
     <1>只需要配置spring-boot-starter-web即可
     <2>根据实际项目开发需求,特殊需求,特殊配置
     <3>spring-boot-starter-web不仅包含spring-boot-starter,还自动开启了web功能

7.SpringBoot搭建简单web的神奇之处:

(1)没有做任何的web.xml配置
(2)没有做任何的sping mvc的配置, springboot做了
  (3)没有配置tomcat ,springboot内嵌tomcat.
  (4)springboot在启动的时候注入了好多封装好的bean,可通过如下方式查看:
     <1>在程序入口加入:@Bean注解
     <2>示例如下:
        @SpringBootApplication
        public class SpringbootFirstApplication {
	      public static void main(String[] args) {
		    SpringApplication.run(SpringbootFirstApplication.class, args);}
	    @Bean
	    public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
		   return args -> {
			 System.out.println("Let's inspect the beans provided by Spring Boot:");
			 String[] beanNames = ctx.getBeanDefinitionNames();
			 Arrays.sort(beanNames);
			 for (String beanName : beanNames) {
				System.out.println(beanName);}};}}
     <3>在程序启动的时候,springboot自动注入了40-50个bean.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值