• springboot项目搭建


    springboot是一个依赖于maven的、快速框架搭建工具。以约定优于配置的方式提供了许多时下流行的java后台框架搭建。使用者可以通过一些约定的配置在极短的时间内完成一类框架的搭建。
    比如:RESTful后台框架搭建。
    搭建步骤为:
    (1)新建一个maven项目。
    (2)配置项目父依赖为springboot,即项目依赖完整继承spring-boot-starter-parent,这样就能达到:完整引入springboot资源依赖、插件列表、插件配置等内容(dependencies、developers、contributors、plugin lists、reports lists、plugin executions with matching ids、plugin configuration)

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


    (3)配置项目启动模块(这个东西指定了项目是web项目,还是java项目,或者别的项目具体选值参照:http://mvnrepository.com/artifact/org.springframework.boot)
    此处配置项目为RESTful风格的web项目,配置如下:

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

    配置完成的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/maven-4.0.0.xsd">
        <!-- 项目信息 -->
        <modelVersion>1.0.0</modelVersion>
        <groupId>com.chendeming.springboot</groupId>
        <artifactId>demo1</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    
        <!-- 项目依赖继承 -->
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.4.0.RELEASE</version>
        </parent>
    
        <dependencies>
           <!-- 这里可以简单理解为引入了一个外部依赖jar包的配置,更多的maven依赖,可以在这里以这种方式添加,具体参见百度maven依赖配置,此处不赘述 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <!-- 此启动器内置tomcat、包含配置spring-webmvc,可完成全栈web开发,风格为RESTful -->
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
        </dependencies>
    </project>            

    (4)写一个springboot启动类

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

    备注说明:
    @SpringBootApplication 被 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解所修饰,换言之 Springboot 提供了统一的注解来替代以上三个注解,简化程序的配置。

    @Configuration:注解是一个类级注释,指示对象是一个bean定义的源。往明白了说,就是用注解代替xml配置。@Configuration 类通过 @bean 注解的公共方法声明bean。通俗的讲 @Configuration 一般与 @Bean 注解配合使用,用@Configuration 注解类等价与 XML 中配置 beans,用 @Bean 注解方法等价于 XML 中配置 bean。

    @EnableAutoConfiguration:注解启用 Spring 应用程序上下文的自动配置,试图猜测和配置您可能需要的bean。自动配置类通常采用基于你的 classpath 和已经定义的 beans 对象进行应用。

    @ComponentScan:注解会自动扫描指定包下的全部标有 @Component注解 的类,并注册成bean,当然包括 @Component 下的子注解@Service、@Repository、@Controller。

    换句话说,注解了@SpringBootApplication,会提供如下功能:
    (1)@Configuration:在Application类里加这样一段代码,

    @Bean
    public UserDAO getUserDAO(){
        return new UserDAO();
    }


    就相当于完成了这样一个spring的配置文件:

    <beans>
            <bean id = "userDAO" class="com.user.UserDAO"></bean>
    </beans>

    (2)EnableAutoConfiguration:Spring Boot会自动根据你jar包的依赖来自动配置项目。

      例如当你项目下面有HSQLDB的依赖时,Spring Boot会创建默认的内存数据库的数据源DataSource,如果你自己创建了DataSource,Spring Boot就不会创建默认的DataSource。

    (3)注解配置为:@SpringBootApplication(scanBasePackages = "com.chendeming")
    则springboot启动会扫描com.chendeming下所有类,完成bean加载,完成依赖管理

    扩展学习

      springboot配置注解例子

        https://www.tianmaying.com/tutorial/spring-boot-overview

      SpringBoot之@EnableAutoConfiguration原理及自定义扩展+少量原理

        http://blog.csdn.net/xiaoyu411502/article/details/52770723

        https://www.jianshu.com/p/464d04c36fb1

      springboot启动过程+配置入门+结尾深入学习

        http://www.cnblogs.com/larryzeal/p/5765945.html
      springboot启动器

        http://blog.csdn.net/chszs/article/details/50610474

      springboot热重启+部分官方文档

        https://www.cnblogs.com/larryzeal/p/5799195.html

      springboot详细教学

        https://www.cnblogs.com/larryzeal/p/5799195.html

      Spring Boot【原理分析】(1)——SpringApplication

        http://blog.csdn.net/wwmfeng/article/details/53463292

        https://www.cnblogs.com/davidwang456/p/5846513.html

  • 相关阅读:
    A New Approach to Line Simplification Based on Image Processing: A Case Study of Water Area Boundaries
    3D模型
    数码相机控制点的自动定位检校
    道路网匹配
    多线程操作数据拷贝要加线程锁
    编程琐事
    C++ 指定路径文件夹存在与否查询及文件夹创建
    C++ 网络编程之正确使用UDP广播及多播
    C++ 获得系统时间
    C++ 数据写入文件与读回
  • 原文地址:https://www.cnblogs.com/chendeming/p/8443257.html
Copyright © 2020-2023  润新知