最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot框架搭建教程分享

 更新時(shí)間:2017年08月25日 14:51:29   作者:dali_lyc  
這篇文章主要為大家詳細(xì)介紹了SpringBoot框架搭建教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

SpringBoot幾乎集成了SpringMVC的所有內(nèi)容,以及tomcat容器,同時(shí)去除了繁復(fù)的xml配置文件,開發(fā)起來(lái)十分方便;頁(yè)面配合thymeleaf模板渲染也是非常簡(jiǎn)單,如果是前后端分離的項(xiàng)目,那么SpringBoot就專門負(fù)責(zé)提供restful風(fēng)格的api接口,通過json格式與前端進(jìn)行數(shù)據(jù)交互。

下面pom.xml里面一些依賴

<?xml version="1.0" encoding="UTF-8"?>
<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>4.0.0</modelVersion>

 <groupId>com.test</groupId>
 <artifactId>demo</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <modules>
  <module>common</module>
  <module>web</module>
 </modules>
 <packaging>pom</packaging>

 <name>demo</name>
 <description>a project for Spring Boot</description>

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

 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  <java.version>1.8</java.version>
 </properties>

 <dependencies>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter</artifactId>
   <exclusions>
    <exclusion>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-logging</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-test</artifactId>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-devtools</artifactId>
   <optional>true</optional>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-thymeleaf</artifactId>
  </dependency>

  <dependency>
   <groupId>org.apache.tomcat</groupId>
   <artifactId>tomcat-jdbc</artifactId>
   <version>7.0.47</version>
  </dependency>

  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-tx</artifactId>
   <version>4.3.6.RELEASE</version>
  </dependency>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-jdbc</artifactId>
   <version>4.3.6.RELEASE</version>
  </dependency>

  <dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
  </dependency>

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

  <dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid</artifactId>
   <version>1.0.19</version>
  </dependency>

  <dependency>
   <groupId>net.sf.json-lib</groupId>
   <artifactId>json-lib</artifactId>
   <version>2.4</version>
   <classifier>jdk15</classifier>
   <exclusions>
    <exclusion>
     <groupId>commons-logging</groupId>
     <artifactId>commons-logging</artifactId>
    </exclusion>
   </exclusions>
  </dependency>

  <dependency>
   <groupId>commons-httpclient</groupId>
   <artifactId>commons-httpclient</artifactId>
   <version>3.0.1</version>
  </dependency>

  <!--log4j2-->
  <dependency>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-slf4j-impl</artifactId>
   <version>2.4.1</version>
  </dependency>
  <dependency>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-api</artifactId>
   <version>2.4.1</version>
  </dependency>
  <dependency>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-core</artifactId>
   <version>2.4.1</version>
  </dependency>
  <dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>jcl-over-slf4j</artifactId>
   <version>1.7.12</version>
  </dependency>

 </dependencies>

 <build>
  <finalName>demo</finalName>
  <resources>
   <resource>
    <directory>src/main/resources</directory>
    <excludes>
     <exclude>application-dev.properties</exclude>
     <exclude>application-prod.properties</exclude>
     <exclude>application.properties</exclude>
    </excludes>
    <filtering>true</filtering>
   </resource>
   <resource>
    <filtering>true</filtering>
    <directory>src/main/resources</directory>
    <includes>
     <include>application-${environment}.properties</include>
     <include>application.properties</include>
    </includes>
   </resource>
  </resources>
 </build>

 <profiles>
  <profile>
   <id>dev</id>
   <properties>
    <environment>dev</environment>
   </properties>
   <activation>
    <activeByDefault>true</activeByDefault>
   </activation>
  </profile>
  <profile>
   <id>prod</id>
   <properties>
    <environment>prod</environment>
   </properties>
  </profile>

 </profiles>
</project>

下面是SpringBoot的啟動(dòng)配置文件application.properties:

spring.thymeleaf.cache=false
server.port=8021
server.context-path=/demo

spring.datasource.url=jdbc:mysql://localhost:3306/demo?characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=XXX
spring.datasource.driver-class-name=com.mysql.jdbc.Driver 

下面是SpringBoot的啟動(dòng)類:

package com.test.demo.web;
import com.test.demo.web.filter.AccessFilter;
import com.test.demo.web.interceptor.AccessInterceptor;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.mybatis.spring.boot.autoconfigure.SpringBootVFS;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import javax.sql.DataSource;

@SpringBootApplication(scanBasePackages = "com.test.demo")
@MapperScan("com.test.demo.common.dao")
@Configuration
public class WebApplication { @Bean
 @ConfigurationProperties(prefix = "spring.datasource")
 public DataSource dataSource() {
  return new org.apache.tomcat.jdbc.pool.DataSource();
 }

 // 提供SqlSession
 @Bean
 public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
  SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
  sqlSessionFactoryBean.setDataSource(dataSource());
  PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
  sqlSessionFactoryBean.setVfs(SpringBootVFS.class);
  sqlSessionFactoryBean.setTypeAliasesPackage("com.test.demo.common.model");
  sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mapper/*.xml"));
  return sqlSessionFactoryBean.getObject();
 }

 // 事務(wù)配置
 @Bean
 public PlatformTransactionManager transactionManager() {
  return new DataSourceTransactionManager(dataSource());
 }

 // 主啟動(dòng)函數(shù)
 public static void main(String[] args) {
  SpringApplication.run(WebApplication.class, args);
 }

 // 過濾器配置
 @Bean
 public FilterRegistrationBean someFilterRegistration() {
  FilterRegistrationBean registration = new FilterRegistrationBean();
  AccessFilter accessFilter = new AccessFilter();
  registration.setFilter(accessFilter);
  registration.addUrlPatterns("/admin/*");
  registration.setName("accessFilter");
  return registration;
 }

 // 攔截器配置
 @Configuration
 public class addInterceptor extends WebMvcConfigurerAdapter {
  public void addInterceptors(InterceptorRegistry registry) {
   registry.addInterceptor(new AccessInterceptor()).addPathPatterns("/admin/**");
  }
 }

}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Springcloud實(shí)現(xiàn)服務(wù)多版本控制的示例代碼

    Springcloud實(shí)現(xiàn)服務(wù)多版本控制的示例代碼

    這篇文章主要介紹了Springcloud實(shí)現(xiàn)服務(wù)多版本控制的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Java集合中的TreeMap解讀

    Java集合中的TreeMap解讀

    這篇文章主要介紹了Java集合中的TreeMap解讀,TreeMap可以傳入一個(gè)實(shí)現(xiàn)了 Comparator接口的一個(gè)匿名內(nèi)部類,匿名內(nèi)部類里面我們?nèi)匀豢梢匀ブ付ㄌ砑游覀兊逆I值對(duì)的這種排序規(guī)則,需要的朋友可以參考下
    2023-09-09
  • Java基礎(chǔ)知識(shí)精通循環(huán)結(jié)構(gòu)與break及continue

    Java基礎(chǔ)知識(shí)精通循環(huán)結(jié)構(gòu)與break及continue

    循環(huán)結(jié)構(gòu)是指在程序中需要反復(fù)執(zhí)行某個(gè)功能而設(shè)置的一種程序結(jié)構(gòu)。它由循環(huán)體中的條件,判斷繼續(xù)執(zhí)行某個(gè)功能還是退出循環(huán),選擇結(jié)構(gòu)用于判斷給定的條件,根據(jù)判斷的結(jié)果判斷某些條件,根據(jù)判斷的結(jié)果來(lái)控制程序的流程
    2022-04-04
  • java+jdbc+mysql+socket搭建局域網(wǎng)聊天室

    java+jdbc+mysql+socket搭建局域網(wǎng)聊天室

    這篇文章主要為大家詳細(xì)介紹了java+jdbc+mysql+socket搭建局域網(wǎng)聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • SpringMVC ajax請(qǐng)求的處理方法介紹

    SpringMVC ajax請(qǐng)求的處理方法介紹

    Ajax即異步的 JavaScript和XML,是一種無(wú)需重新加載整個(gè)網(wǎng)頁(yè)的情況下,能夠更新部分模塊的網(wǎng)頁(yè)技術(shù),下面這篇文章主要給大家介紹了關(guān)于SpringMVC Ajax請(qǐng)求的處理,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • Java排序算法之桶排序詳解

    Java排序算法之桶排序詳解

    這篇文章主要介紹了Java排序算法之桶排序詳解,桶排序是將數(shù)組中的元素放到一個(gè)一個(gè)的桶中,每個(gè)桶(bucket)代表一個(gè)區(qū)間,里面可以承載一個(gè)或者多個(gè)元素,然后將桶內(nèi)的元素進(jìn)行排序,再按順序遍歷桶,輸出桶內(nèi)元素,需要的朋友可以參考下
    2023-10-10
  • SpringBoot2 集成log4j2日志框架的實(shí)現(xiàn)

    SpringBoot2 集成log4j2日志框架的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot2 集成log4j2日志框架的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Java 阻塞隊(duì)列詳解及簡(jiǎn)單使用

    Java 阻塞隊(duì)列詳解及簡(jiǎn)單使用

    這篇文章主要介紹了Java 阻塞隊(duì)列詳解及簡(jiǎn)單使用的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 智能 AI 代碼生成工具 Cursor 安裝和使用超詳細(xì)教程

    智能 AI 代碼生成工具 Cursor 安裝和使用超詳細(xì)教程

    Cursor.so 是一個(gè)集成了 GPT-4 的國(guó)內(nèi)直接可以訪問的,優(yōu)秀而強(qiáng)大的免費(fèi)代碼生成器,可以幫助你快速編寫、編輯和討論代碼,這篇文章主要介紹了智能 AI 代碼生成工具 Cursor 安裝和使用介紹,需要的朋友可以參考下
    2023-05-05
  • Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)

    Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼)

    這篇文章主要介紹了Java+MySQL實(shí)現(xiàn)圖書管理系統(tǒng)(完整代碼),本文給大家介紹的非常想詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01

最新評(píng)論

监利县| 凌云县| 凉山| 乌什县| 藁城市| 北宁市| 松江区| 平顶山市| 蓬安县| 环江| 哈尔滨市| 日照市| 抚宁县| 来宾市| 汾西县| 绵竹市| 宁海县| 大港区| 京山县| 吉木萨尔县| 兴海县| 衡阳县| 大理市| 莒南县| 大方县| 拜泉县| 弥渡县| 墨竹工卡县| 武威市| 延安市| 永昌县| 迭部县| 九台市| 朝阳县| 潞城市| 松滋市| 宁国市| 嘉鱼县| 大悟县| 新巴尔虎左旗| 德江县|