zoukankan      html  css  js  c++  java
  • SpringBoot

    SpringBoot

    1. 基本概念

    使用传统的SSM框架开发项目时,需要添加诸多依赖,并且,还需要做大量的配置,但是,每个项目使用到的依赖大致相同,配置方式也大致不变。

    SpringBoot默认集成了绝大部分常用的依赖,并内置完成了绝大部分的配置。

    2. 创建SpringBoot项目

    首先,访问https://start.spring.io/网站,这是创建SpringBoot项目的网站,在页面中输入必要的选项,点击Generate Project按钮即可创建项目,并自动下载。

    点击Switch to the full version链接可以展开详细设置,在下方还有诸多其它的依赖,如果需要,可以勾选,则在创建项目时就已经自动添加了这些依赖,如果创建项目时没有勾选,也可以后续在开发过程中自行添加。

    下载创建的项目压缩包后,将其解压到Workspace中(推荐),通过Eclipse的Import > Import > Existing Maven Projects功能将项目导入,其间,应该保证当前电脑是可以连接到Maven服务器的,加载完成后,在Eclipse中就可以看到正常的项目了。

    当生成完项目后,如果pom.xml报错,多是因为使用的Eclipse版本较旧(是Elicpse中配置的Maven版本较旧),通常,推荐使用Oxygen版本或以上版本,近期的Eclipse版本从新到旧是:

    Eclipse 2018-12 (4.10)
    Eclipse 2018-09 (4.9)
    Eclipse Photon (4.8)
    Eclipse Oxygen (4.7)
    Eclipse Neon (4.6)
    Eclipse Mars (4.5)
    Eclipse Luna (4.4)
    Eclipse Kepler (4.3)
    

    3. SpringBoot项目的特点

    3.1. 启动类

    在项目的根包(创建时指定的包名)下有DemoApplication.java文件(文件名中Application左侧的单词是创建项目时指定的名称),这个文件就是项目的启动文件,后续,启动该项目时,无需添加Tomcat运行环境,也无需将项目添加到Servers中的Tomcat中,只需要通过Java Application的方式运行该文件即可!

    SpringBoot项目内置Tomcat,所以,当启动了项目且没有停止时,不可以再次启动,导致会因为端口冲突导致后续启动失败!

    3.2. 根包

    SpringBoot项目会根据创建项目时填写的GroupArtifact形成当前项目的根包,例如cn.tedu.demo,在开发过程中,所有的组件类都必须在根包或其子孙包中,因为SpringBoot项目已经指定了组件扫描的范围就是根包,类似于:

    3.3. 静态页面

    在SpringBoot项目中,推荐将静态资源(包含html、css、js、图片等)存入到项目的resources下的static文件夹中。

    可以在static下创建index.html(注意:创建html文件时,Eclipse会默认选中webapp文件夹,需要手动选中resources > static文件夹)。

    创建完成后,即可通过http://localhost:8080来访问这个页面!

    所有的SpringBoot项目默认内置Tomcat,且部署项目时,会将项目部署为服务器的根路径项目:o.a.c.c.C.[Tomcat].[localhost].[/],所以,在访问项目时,不必像传统项目一样添加项目名称!

    并且,SpringBoot项目将index.html视为默认访问页面,所以,当访问该页面,无需显式的指定名称!

    3.4. 控制器

    控制器类必须在根包或其子孙包中,例如创建cn.tedu.demo.controller.UserController类,并添加@RestController@RequestMapping("/user")注解。

    @RestController相当于@Controller和每个方法之前都添加@ResponseBody,所以,当类之前添加了@RestController,等同于每个方法之前都已经添加@ResponseBody!当然,如果某个方法不想响应正文,还是希望转发或重定向,则类之前不能使用@RestController

    在SpringBoot项目中,配置资源的路径时,不要求必须是*.do,因为SpringBoot配置DispatcherServlet的路径时,配置值是/*,即由DispatcherServlet接收任何请求。

    3.5. 数据库编程

    使用MySQL数据库,并使用MyBatis框架,需要添加依赖:

    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.0.0</version>
    </dependency>
    
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    

    添加以上依赖后,SpringBoot将视为当前项目需要连接数据库,如果在application.properties中没有添加连接数据库的相关配置,则运行项目时就会提示错误!则需要在application.properties中配置:

    # datasource
    spring.datasource.url=jdbc:mysql://localhost:3306/tedu_ums?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    spring.datasource.username=root
    spring.datasource.password=root
    

    可以编写单元测试:

    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class DemoApplicationTests {
    
        @Test
        public void contextLoads() {
        }
    
        @Autowired
        DataSource dataSource;
    
        @Test
        public void testConnection() 
                throws SQLException {
            Connection conn
                = dataSource.getConnection();
            System.out.println(conn);
        }
    
    }
    

    为了保证SpringBoot能扫描得到MyBatis的接口文件所在的包,需要在启动类DemoApplication之前添加@MapperScan("cn.tedu.demo.mapper")注解:

    @SpringBootApplication
    @MapperScan("cn.tedu.demo.mapper")
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    
    }
    

    然后,需要在application.properties中指定XML映射文件的位置:

    mybatis.mapper-locations=classpath:mappers/*.xml
    

    关于MyBatis的开发与传统SSM项目一样,先创建接口并定义抽象方法,然后使用XML配置映射,完成后,可以编写并执行单元测试:

    @Autowired
    UserMapper userMapper;
    
    @Test
    public void findByUsername() {
        String username = "admin888";
        User user = userMapper.findByUsername(username);
        System.err.println(user);
    }
    

    MVC = Model,View,Controller
    
    View:视图
    
    Controller:控制器,接收请求,给予响应
    
    Model:数据模型 = 业务逻辑(Service) + 数据操作(Dao)
    
    请求 ---> Controller ---> Service ---> Mapper
    
  • 相关阅读:
    Eclipse Android源代码新下载方法及关联
    javascript通过数日两个日期之间的比较分离
    房费制——概要设计说明书
    分析Cocos2d-x横版ACT手游源 2、server场景
    欧几里德欧几里德原理和扩展的原则,(Euclidean Theory and Extended Euclidean Theory)学习笔记
    ECLIPSE实现了界面显示所有类
    最终的解决方案感到担心初中——现在,你可以移动
    &lt;&lt;Python基础课程&gt;&gt;学习笔记 | 文章13章 | 数据库支持
    找呀志_通过开源框架引AsyncHttpClient处理get/post要求
    android studio 添加到项目库中的项目
  • 原文地址:https://www.cnblogs.com/cjk6634677/p/10449919.html
Copyright © 2011-2022 走看看