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自动建立,能够在其它类中装配。

相关文章
相关标签/搜索