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
#\u9A71\u52A8jar\u5305\u7684\u4F4D\u7F6E,\u5177\u4F53\u7684\u8DEF\u5F84\u3002\u9006\u5411\u751F\u6210\u4EE3\u7801\u65F6\u4F7F\u7528
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,就可以快速生成測試方法了;

測試文件為:

測試結果為:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM