Spring Boot

1、Spring Boot搭建環境

1.方式一:進入Spring Boot 官方網站,點擊QUICK START,選擇current版本。點擊start.spring.io。

若是是web項目能夠加入web 依賴,點擊Generate Project生成demo文件,直接導入就好。java

2.方式二:使用IDE工具生成。這裏使用idea做爲演示。

File—New—Projectweb

next填寫Group與Artifact,next,定製依賴,選擇本身須要的依賴而後Finishspring

這樣一個基礎的Spring Boot項目就搭建好了。sql

3.Spring Boot如此流行的一個重要緣由也是它的最大優點就是極大簡化了配置,將一些經常使用的性能穩定的工具進行進一步地封裝成一個個小模塊,當須要的時候直接引入依賴就足夠了,好比說我想添加與Oracle數據庫的鏈接,僅僅要作的是加入spring-boot-starter-data-jpa的依賴,與標識Oracle的依賴包ojdbc,另外在配置文件中配置一下鏈接的url、用戶名密碼就好、甚至數據源都不須要本身去裝配、它默認使用tomcat的鏈接池。當須要本身去定製鏈接池的時候,直接在配置文件中加入鏈接池的Bean位置(全名稱)就好,極大簡化了spring的初始配置,很是適合一些獨立運行的小項目的搭建,快速穩定。數據庫

 

2、Spring Boot 鏈接Oracle數據庫

1.使用Spring自帶的JdbcTemplate。

以查詢班級信息爲例。數據庫中表字段:apache

2.pom.xml中加入依賴:

<!--Oracle-->
		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc14</artifactId>
			<version>10.2.0.4.0</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>

3.application.properties中加入數據庫配置。(也能夠用yml配置文件,不過我的不習慣)

#數據庫
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
spring.datasource.tomcat.max-wait=10000
spring.datasource.tomcat.max-active=50
spring.datasource.tomcat.test-on-borrow=true
#前面四個配置能夠不寫,由於在Spring Boot 1.5.9版本中是默認使用tomcat的鏈接池。
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1(IP地址):1521(端口號):orcl(實例名)
spring.datasource.username=username
spring.datasource.password=password

4.ClassDaoImpl中。

@Repository
public class ClassDaoImpl{
    @Autowired
    private JdbcTemplate jdbcTemplate;
    public List<Class> findAll() {
        String sql = "select * from class";
        return jdbcTemplate.query(sql, (resultSet, i) -> {
            Class classInf = new Class();
            classInf.setClassid(resultSet.getString("CLASSID"));
            classInf.setClassname(resultSet.getString("CLASSNAME"));
            classInf.setClassno(resultSet.getString("CLASSNO"));
            classInf.setGrade(resultSet.getString("GRADE"));
            classInf.setPid(resultSet.getString("PID"));
            classInf.setState(resultSet.getInt("STATE"));
            return classInf;
        });

5.ClassController中:

@RestController
public class ClassController {

    @Resource(name = "classDao")
    private ClassDao classDao;

    @RequestMapping("/test")
public List<Class> findAll() {
        return classDao.findAll();
    }
}

@RestController是Spring Boot特有的註解,被註解的類其中的方法都默認將對象以一種流的方式處理成Json串返回。瀏覽器

測試:1.啓動Application,Application是Spring Boot啓動的入口,Spring Boot 直接集成了servlet容器tomcat七、八、jetty、Undertow,默認是tomcat。不須要進行額外配置。直接啓動便可。tomcat

2.若換成jetty,在pom文件的starter中,排除tomcat、增長jetty依賴便可。oracle

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
   <exclusions>
      <exclusion>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-tomcat</artifactId>
      </exclusion>
   </exclusions>
</dependency>

增長jetty依賴:app

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>

3.瀏覽器訪問http://localhost:8080/test,就會返回從數據庫紅查找出的字符串。

3、Spring Boot添加定時任務:

1.添加配置類:

@Configuration
@EnableScheduling
public class Scheduler {
    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Resource(name = "scheduleService")
    private ScheduleService scheduleService;

    @Scheduled(cron = "${SCHEDULEINTERVAL}")
    public void doTask() {
        logger.info("定時任務開始");
        scheduleService.doTask();
        logger.info("定時任務結束");
    }
}

@Configuration表示這是一個配置類

@EnableScheduling表示開啓定時任務,

Cron表達式從配置文件中獲取。爲SCHEDULEINTERVAL=0 0/10 * * * ?

意爲每十分鐘執行一次。

 

4、Spring Boot執行存儲過程。

String sql = "call TESTPROCEDURE(10)";

TESTPROCEDURE爲過程名,(10)表示入參爲10。
jdbcTemplate.execute(sql);

5、Spring Boot獲取配置文件中的List數據

1.配置文件中:

#包名
PROCEDURE.PACKAGENAME[0]=PKG_AJJ_DATA_FMKS
PROCEDURE.PACKAGENAME[1]=PKG_AJJ_DATA_TZRY
PROCEDURE.PACKAGENAME[2]=PKG_AJJ_DATA_WXP
PROCEDURE.PACKAGENAME[3]=PKG_AJJ_DATA_YZDP
PROCEDURE.PACKAGENAME[4]=PKG_AJJ_DATA_ZZJG
#過程名
PROCEDURE.PROCEDURENAME[0]=PRC_BN_INF_APPLY
PROCEDURE.PROCEDURENAME[1]=PRC_BN_INF_APPLY_PROCESS
PROCEDURE.PROCEDURENAME[2]=PRC_BN_INF_APPLY_RESULT
PROCEDURE.PROCEDURENAME[3]=PRC_T_ZZ_ZM_INFO
PROCEDURE.PROCEDURENAME[4]=PRC_BASE_INFO
PROCEDURE.PROCEDURENAME[5]=PRC_ERROR_INFO

2.配置類:

@ConfigurationProperties(prefix = "PROCEDURE")
@Component(value = "procedureName")
public class ProcedureName {
    private List<String> PACKAGENAME = new ArrayList<>();
    private List<String> PROCEDURENAME = new ArrayList<>();

    public List<String> getPACKAGENAME() {
        return PACKAGENAME;
    }

    public void setPACKAGENAME(List<String> PACKAGENAME) {
        this.PACKAGENAME = PACKAGENAME;
    }

    public List<String> getPROCEDURENAME() {
        return PROCEDURENAME;
    }

    public void setPROCEDURENAME(List<String> PROCEDURENAME) {
        this.PROCEDURENAME = PROCEDURENAME;
    }
}

@ConfigurationProperties(prefix = "PROCEDURE")

自動將配置文件中前綴爲PROCEDURE的配置信息自動映射到類中。

@Component(value = "procedureName")

讓Spring自動建立,能夠在其它類中裝配。

相關文章
相關標籤/搜索