• Springboot如何创建一个项目


    一、什么是SpringBoot;

    Springboot是一个快速开发框架。其采用了完全注解的方式,简化了xml配置。并通过springboot 父项目定义好了各类框架的版本信息,简化了maven依赖配置,及版本兼容性问题。内部通过java类配置了各类框架的整合配置,能够做到框架的自动装配。 总体来说简化了spring项目的初始搭建,降低了框架整合的复杂度,做到开箱即用。

    优点:

    1)简化了maven配置

    2)自动装配spring和其他框架

    3)简化了xml配置

    4)内置了tomcat,无需war部署

    5)天然集成微服务开发springcloud

    二、Springboot项目的创建;

    然后点击确定即可;

    我们最开始的项目结构是这样的;

    三、使用项目;

    1)Springboot项目是一个标准的maven项目。

    Resources目录下,默认生成了static,templates,application.properties三个目录和文件;

    Static:用来存放静态资源(css js 图片 静态html);

    Templates:用来存放模板页面(动态的页面,类似于jsp),templates下的内容是不能直接访问的,必须通过控制层进行跳转;

    Src目录下会按groupid 和项目生成对应的包结构。在包中会生成一个springboot项目的启动类。我们可以通过运行该类中的main方法启动springboot项目;

    Springboot推崇约定大于配置的思想。

    2)@SpringBootApplication 注解是springboot启动类的注解。

    其相当于以前版本中的三个注解:

    @SpringbootConfiguration  指定springboot配置类的注解

    @ComponentScan:组件扫描注解,相当于<comtext:compent-scan> 扫描包注解

     Springboot中约定,自动会扫描启动类所在包及其子包下的所有的类。

    @EnableAutoConfiguration 自动装配注解,springboot会根据导入的依赖关系,去自动配置装载框架相关的配置项。

    3)Springboot整合mybatis;

    1、导入mybatis依赖;

          <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.1.3</version>
            </dependency>

    2、在springboot启动类上添加@MapperScan注解,扫描Mapper接口所在的包;

    @SpringBootApplication//springboot项目的启动类注解
    @MapperScan("com.seecen.springboot.mapper")//扫描mybatis Mapper接口
    public class SpringbootApplication {
        public static void main(String[] args) {
            SpringApplication.run(SpringbootApplication.class, args);
        }
    }

    3、Springboot的配置文件中Application.properties中配置 mapper.xml位置,别名等配置;

    #mybatis配置
    #配置mybatis mapper.xml文件的位置
    mybatis.mapper-locations=classpath:mapper/*.xml
    #配置别名,指定实体类所在包
    mybatis.type-aliases-package=com.seecen.springboot.entity

    4、Springboot整合mybatis分页插件;

    1)     导入分页插件依赖;

            <!-- 分页插件 -->
            <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.12</version>
            </dependency>

    2)     在springboot application.properties配置文件中配置分页插件;

    #mybatis分页插件
    #指定数据库方言
    pagehelper.helper-dialect=oracle
    pagehelper.reasonable=true
    pagehelper.params=pageNum=pageHelperStart;pageSize=pageHelperRows
    pagehelper.page-size-zero=true
    pagehelper.support-methods-arguments=true

    3)然后需要在方法中写PageInfo分页方法;

    @Controller
    @RequestMapping("/admin")
    public class AdminController {
        @Autowired
        private AdminService adminService;
        @ResponseBody
        @GetMapping("/all")
        public PageInfo<TAdmin> selectAll(Integer pageSize, Integer pageNum){
            return adminService.selectAll(pageSize,pageNum);
        }
    }
    public interface AdminService {
        PageInfo<TAdmin> selectAll(Integer pageSize, Integer pageNum);
    }
    @Service
    public class AdminServiceImpl implements AdminService{
        @Autowired
        private AdminMapper adminMapper;
        @Override
        public PageInfo<TAdmin> selectAll(Integer pageSize, Integer pageNum)
        {
            PageHelper.startPage(pageNum,pageSize);
            List<TAdmin> tAdmins = adminMapper.selectAll();
            return new PageInfo<>(tAdmins);
        }
    }
    @Repository
    public interface AdminMapper {
    
        @Select("select * from t_admin")
        List<TAdmin> selectAll();
    
        TAdmin selectById(Integer id);
    }

    5、Springboot mybatis打印sql日志;

    #配置springboot的日志级别
    #配置日志的级别(全局配置)debug < info < warn < error
    logging.level.root=info
    #配置特定包下的日志级别
    logging.level.com.seecen.springboot.mapper=debug
    logging.level.com.seecen.springboot.service=debug

    6、Mybatis 逆向工程,生成Mapper 和mapper.xml文件

    (1)     导入maven的mybatis逆向工程插件;

      <!--      逆向生成代码  mybatis代码生成器-->
            <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-core</artifactId>
                <version>1.3.5</version>
            </dependency>
    <!--        mybatis 代码生成器maven插件-->
                <plugin>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-maven-plugin</artifactId>
                    <version>1.3.5</version>
                    <configuration>
                        <!--        指定配置文件的路径-->
                        <configurationFile>src/main/resources/mybatis/generatorConfig.xml</configurationFile>
                        <verbose>true</verbose>
                        <overwrite>true</overwrite>
                    </configuration>
                </plugin>

    (2)     编写配置文件;

    generatorConfig.xml文件代码为:

    <?xml version="1.0" encoding="UTF-8" ?>  
    <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
    <generatorConfiguration>
        <!--加载jdbc.properties配置文件-->
        <properties resource="mybatis/jdbc.properties" />
        <!--配置驱动jar包的位置-->
        <classPathEntry location="${driverClassPath}" />
        <!--
            context:生成一组对象的环境
            id:必选,上下文id,用于在生成错误时提示
            defaultModelType:指定生成对象的样式
                1,conditional:类似hierarchical;
                2,flat:所有内容(主键,blob)等全部生成在一个对象中;
                3,hierarchical:主键生成一个XXKey对象(key class),Blob等单独生成一个对象,其他简单属性在一个对象中(record class)
            targetRuntime:
                1,MyBatis3:默认的值,生成基于MyBatis3.x以上版本的内容,包括XXXBySample;
                2,MyBatis3Simple:类似MyBatis3,只是不生成XXXBySample;
            introspectedColumnImpl:类全限定名,用于扩展MBG
        -->
        <context id="context1" targetRuntime="MyBatis3">
    
            <!-- genenat entity时,生成toString -->
            <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
            <!-- generate entity时,生成serialVersionUID -->
            <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
            <!--不生成注释-->
            <commentGenerator>
                <property name="suppressAllComments" value="true" />
            </commentGenerator>
    
            <!--配置数据库连接信息-->
            <jdbcConnection driverClass="${jdbc.driver}"
                connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}" />
            <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL和 NUMERIC 类型解析为java.math.BigDecimal -->
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false"/>
            </javaTypeResolver>
    
            <!-- java模型创建器,是必须要的元素
                负责:1,key类(见context的defaultModelType);2,java类;3,查询类
                targetPackage:生成的类要放的包,真实的包受enableSubPackages属性控制;
                targetProject:目标项目,指定一个存在的目录下,生成的内容会放到指定目录中,如果目录不存在,MBG不会自动建目录
             -->
            <javaModelGenerator targetPackage="com.seecen.springboot.entity"
                targetProject="src/main/java">
                <!-- 设置是否在getter方法中,对String类型字段调用trim()方法 -->
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
            <!-- 生成SQL map的XML文件生成器,
                        注意,在Mybatis3之后,我们可以使用mapper.xml文件+Mapper接口(或者不用mapper接口),
                            或者只使用Mapper接口+Annotation,所以,如果 javaClientGenerator配置中配置了需要生成XML的话,这个元素就必须配置
                        targetPackage/targetProject:同javaModelGenerator
                     -->
            <sqlMapGenerator targetPackage="mapper"
                targetProject="src/main/resources"></sqlMapGenerator>
    
            <!-- 对于mybatis来说,即生成Mapper接口,注意,如果没有配置该元素,那么默认不会生成Mapper接口
                targetPackage/targetProject:同javaModelGenerator
                type:选择怎么生成mapper接口(在MyBatis3/MyBatis3Simple下):
                    1,ANNOTATEDMAPPER:会生成使用Mapper接口+Annotation的方式创建(SQL生成在annotation中),不会生成对应的XML;
                    2,MIXEDMAPPER:使用混合配置,会生成Mapper接口,并适当添加合适的Annotation,但是XML会生成在XML中;
                    3,XMLMAPPER:会生成Mapper接口,接口完全依赖XML;
                注意,如果context是MyBatis3Simple:只支持ANNOTATEDMAPPER和XMLMAPPER
            -->
            <javaClientGenerator targetPackage="com.seecen.springboot.mapper"
                targetProject="src/main/java" type="XMLMAPPER" />
    
            <!-- 需要逆向 enableCountByExample="false" enableUpdateByExample="false"
              enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"
             -->
    <!--我们需要生成哪个实体类,就直接改t_admin为哪个实体类即可-> <table tableName="t_admin"> <!--<columnOverride column="ID" javaType="java.lang.Integer"></columnOverride> <columnOverride column="dept" javaType="java.lang.Integer"></columnOverride>--> </table> </context> </generatorConfiguration>

    jdbc.properties文件代码为:

    jdbc.driver=oracle.jdbc.driver.OracleDriver
    jdbc.url=jdbc:oracle:thin:@localhost:1521:XE
    jdbc.username=blog
    jdbc.password=123456
    #u9A71u52A8jaru5305u7684u4F4Du7F6E,u5177u4F53u7684u8DEFu5F84u3002u9006u5411u751Fu6210u4EE3u7801u65F6u4F7Fu7528
    driverClassPath=C:\Users\Administrator\.m2\repository\com\oracle\ojdbc\ojdbc8\19.3.0.0\ojdbc8-19.3.0.0.jar
    driverClassPath为你自己maven仓库的包的路径;

    (3)     运行插件;

    我们如果是测试的话,就在那个mapper.java文件对着那个实体类ctrl+shift+T,就可以快速生成测试方法了;

    测试文件为:

    测试结果为:

  • 相关阅读:
    好的Qt学习资料
    QT QMap介绍与使用
    Qt缺少调试器
    vs2012+Qt5.3.1环境添加新的ui界面的方法
    QT定时器的使用
    Qt中forward declaration of struct Ui::xxx的解决
    linux-svn命令
    如何编写Windows服务
    为你的爬虫提提速?
    Python爬虫的N种姿势
  • 原文地址:https://www.cnblogs.com/xie-qi/p/13264355.html
Copyright © 2020-2023  润新知