springboot的特色
①建立獨立的spring應用
②嵌入Tomcat,無需部署war文件
③簡化Maven配置
④自動配置Spring
⑤沒有xml的配置java
開發環境要求
①Maven 3以上
②Spring FrameWork 4以上
③Jdk1.7以上 boot2在1.8以上
④springboot 1.5以上mysql
<!-- springboot的父級項目依賴 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.7.RELEASE</version> </parent> <!-- springboot的web依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 測試 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <!-- 只在test測試裏面運行 --> <scope>test</scope> </dependency>
@SpringBootApplication public class Application { //啓動springboot應用 public static void main(String[] args) { //參數1:springboot入口類對象、參數2:main函數的參數 SpringApplication.run(Application.class,args); } }
@SpringBootApplication
修飾範圍:只能用在入口類上 惟一
做用:
①.表明當前應用是一個springboot構建的應用
②.表明這個類是springboot的入口應用程序員
server: port: 9090 context-path: /springboot
入口類上註解,是如下三個註解的組合web
@SpringBootApplication //自動配置spring相關內容 @EnableAutoConfiguration //第三方jar與springboot自動配置 @ComponentScan //手動指定包掃描,默認掃描入口類當前包及其包下子包
注意:
@SpringBootConfiguration繼承自@Configuration,兩者功能也一致,標註當前類是配置類,
並會將當前類內聲明的一個或多個以@Bean註解標記的方法的實例歸入到spring容器中,而且實例名就是方法名。spring
其餘註解:
spring4中sql
@RestController //基於restful風格控制器 //使用在controller類上,至關於@Controller + @ResponseBody //做用:將類中全部方法的返回值以json格式響應
在resources包下,建立banner.txt,並在其中書寫內容,個人示例以下:數據庫
______ _____ ______ __ __ __ / ____/ ____ / ___/ ____ __ __ _____ _____ / ____/ ____ / / / / / / / / __ / __ \ \__ \ / __ \ / / / / / ___/ / ___/ / / __ / __ \ / / / / / / / /_/ / / /_/ / ___/ / / /_/ // /_/ / / / (__ ) / /_/ / / /_/ / /_/ /_/ /_/ \____/ \____/ /____/ / .___/ \__,_/ /_/ /____/ \____/ \____/ (_) (_) (_) /_/
springboot中默認的視圖解析器是:thymeleaf(view層框架)
springboot集成jsp:apache
<!--jstl--> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!--引入springboot 對jsp頁面的支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency>
spring: mvc: view: #試圖解析器 prefix: / suffix: .jsp http: encoding: charset: utf-8 #中文亂碼問題 force: true
<plugins> <!--springboot 支持jsp啓動插件--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins>
spring.profiles.active:xxx #激活哪一個文件生效(寫文件-後邊單詞便可)
json
<!--引入springboot和mybatis整合jar--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <!--引入mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <!--druid--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency>
spring: datasource: type: com.alibaba.druid.pool.DruidDataSource #指定數據源 driver-class-name: com.mysql.jdbc.Driver #指定驅動 url: jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8 #指定url username: root password: root
②mapper配置文件的位置 和 實體起別名tomcat
mybatis: mapper-locations: classpath:com/abc/mapper/*Mapper.xml #指定mapper配置文件位置 type-aliases-package: com.abc.entity #指定起別名的包
@SpringBootApplication @MapperScan("com.abc.dao") public class Application { }
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- 測試 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <!-- 只在test測試裏面運行 --> <scope>test</scope> </dependency>
//在當前類實例化啓動springboot應用 //當測試類與入口類不平級時,需手動指定入口類;要求junit4.12 @SpringBootTest(classes = Application.class) @RunWith(SpringRunner.class) public class TestUser { @Autowired private UserDAO userDAO; @Test public void test1(){ User user = userDAO.selectByPrimaryKey("1"); System.err.println(user); } }
ps:解決注入dao紅色下劃線問題!
在DAO接口加以下註解:
@Mapper @Component(value = "userDAO") public interface UserDAO {
@Mapper
@Component:定義Spring管理Bean,經過@Component將切面定義爲Spring管理Bean,像@Service、@Controller、@Repository都是其擴展
<!--springboot 支持jsp啓動插件--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.7.RELEASE</version> </dependency> </dependencies> </plugin>
server: jsp-servlet: init-parameters: development: true #開啓jsp的熱部署配置
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.49</version> </dependency>
//FastJson配置 @Bean //@Bean 將配置的東西做爲bean對象,交給工廠處理 public HttpMessageConverters fastjsonHttpMessageConverter(){ //定義一個轉換消息的對象 FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); //添加fastjson的配置信息 好比 :是否要格式化返回的json數據 FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); //在轉換器中添加配置信息 fastConverter.setFastJsonConfig(fastJsonConfig); HttpMessageConverter<?> converter = fastConverter; return new HttpMessageConverters(converter); }