spring boot (一)
今天开始玩spring boot,做了个小例子,记录一下先。
最快的启动一个spring boot,只要下面几步:
1,新建一个maven项目;
2,配置简单的pom.xml;
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.panshao</groupId> <artifactId>springboot</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>springboot</name> <url>http://maven.apache.org</url> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.5.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <finalName>springboot</finalName> <sourceDirectory>src/main/java</sourceDirectory> <testSourceDirectory>src/test/java</testSourceDirectory> <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory> <testOutputDirectory>src/main/webapp/WEB-INF/classes</testOutputDirectory> <defaultGoal>package</defaultGoal> <resources> <resource> <directory>src/main/resources</directory> </resource> </resources> <testResources> <testResource> <directory>src/test/resources</directory> </testResource> </testResources> </build> </project>
上面红色的就是全部配置了;
3,写一个启动的类;
package com.panshao.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @EnableAutoConfiguration public class SampleController { @RequestMapping("/") @ResponseBody String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(SampleController.class, args); } }
运行一个main方法,spring boot便会帮你部署到他自带的tomcat里面去了,然后你就可以访问链接: http://127.0.0.1:8080/ 便可以得到一个 : Hello World!了, so easy ! 妈妈再也不用担心我的配置了!
到此,没出现任何其他的配置文件!!!
上面就当有个认识就可以了。
接着我们来说说访问数据库的问题:
1,数据库JDBC链接:
这时候我们先加载驱动,我用的是oracle,就以他为例:
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.panshao</groupId> <artifactId>springboot</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>springboot</name> <url>http://maven.apache.org</url> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.5.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId> <version>10.2.0.1.0</version> </dependency> </dependencies> <build> <finalName>springboot</finalName> <sourceDirectory>src/main/java</sourceDirectory> <testSourceDirectory>src/test/java</testSourceDirectory> <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory> <testOutputDirectory>src/main/webapp/WEB-INF/classes</testOutputDirectory> <defaultGoal>package</defaultGoal> <resources> <resource> <directory>src/main/resources</directory> </resource> </resources> <testResources> <testResource> <directory>src/test/resources</directory> </testResource> </testResources> </build> </project>
驱动jar包加好了,接下来是配置数据库链接,是配置在application.properties里面的:
spring.datasource.url=jdbc\:oracle\:thin\:@10.18.96.50\:1521\:ismp spring.datasource.username=xxxx spring.datasource.password=xxxx spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
这样jdbc链接也就结束了;
2,采用的orm框架:
继续在application.properties里面配置hibernate
spring.jpa.hibernate.ddl-auto=none spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
3,实体类映射:
package com.panshao.springboot.entity; import java.io.Serializable; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @SuppressWarnings("serial") @Table(name="T_ACCEPT") public class Accept implements Serializable{ private String acceptNumber; private String bnetId; @Id public String getAcceptNumber() { return acceptNumber; } public void setAcceptNumber(String acceptNumber) { this.acceptNumber = acceptNumber; } public String getBnetId() { return bnetId; } public void setBnetId(String bnetId) { this.bnetId = bnetId; } }
省去了表的字段名到实体字段的映射;
4,dao操作:
dao操作比较好玩,很能体现“约定由于配置”的原则,你会发现你写出来的就是一个借口就好了,写属于自己的方法是要注意参数不是随便取的,要跟实体字段相对应才行。不过写着写着刚想到一个问题,就是传入费实体字段要如何处理?有空要试试!
package com.panshao.springboot.dao; import java.util.List; import org.springframework.data.repository.CrudRepository; import org.springframework.transaction.annotation.Transactional; import com.panshao.springboot.entity.Accept; @Transactional public interface AcceptDao extends CrudRepository<Accept, Long> { public List<Accept> findByBnetId(String bnetId); }
5,调用:
package com.panshao.springboot; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.panshao.springboot.dao.AcceptDao; import com.panshao.springboot.entity.Accept; @Controller @EnableAutoConfiguration public class AcceptController { @Autowired AcceptDao acceptDao; @RequestMapping("/get-by-bnetId") @ResponseBody public String getByBnetId(String bnetId) { List<Accept> acceptList = acceptDao.findByBnetId(bnetId); StringBuffer buffer = new StringBuffer(); if (acceptList != null) { for (Accept accept : acceptList) { String acceptNumber = accept.getAcceptNumber(); buffer.append("acceptNumber = "+acceptNumber + "\r\n"); } return "The accept number is: \r\n" + buffer; } return "accept with bnetId=" + bnetId + " is not exist."; } public static void main(String[] args) throws Exception { SpringApplication.run(AcceptController.class, args); } }
http://127.0.0.1:8080/get-by-bnetId?bnetId=xxxx