spring-boot使用教程(一):让程序跑起来

 2023-09-16 阅读 25 评论 0

摘要:学习一个新技术,先别管他的原理啊,流程啊,怎么组织代码啊什么的。直接从官网或者博客抄一个小demo,自己亲自跑一遍,然后再去看那一堆让人头皮发麻的讲解,就能相对容易的看懂了。 初学者的态度应该是:不要问我为什么,

学习一个新技术,先别管他的原理啊,流程啊,怎么组织代码啊什么的。直接从官网或者博客抄一个小demo,自己亲自跑一遍,然后再去看那一堆让人头皮发麻的讲解,就能相对容易的看懂了。

初学者的态度应该是:不要问我为什么,反正我就是可以这样运行!

简介

spring-boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。springboot的优点、该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

文件结构


https://github.com/bigbeef/cppba-spring-boot

1.maven的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.cppbba</groupId><artifactId>cppba-spring-boot</artifactId><packaging>war</packaging><version>1.0.0</version><name>cppba-spring-boot Maven Webapp</name><url>http://maven.apache.org</url><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.3.6.RELEASE</version></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><jdk.version>1.7</jdk.version><spring.version>4.3.0.RELEASE</spring.version><hibernate.version>4.3.11.Final</hibernate.version></properties><dependencies><!--spring--><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></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- hibernate--><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-entitymanager</artifactId><version>${hibernate.version}</version></dependency><!--druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.20</version></dependency></dependencies><build><finalName>cppba-spring-boot</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

2.创建Application.java

package com.cppba;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.env.Environment;import java.net.UnknownHostException;// same as @Configuration @EnableAutoConfiguration @ComponentScan
@SpringBootApplication
public class Application {public static void main(String[] args) throws UnknownHostException {SpringApplication app = new SpringApplication(Application.class);Environment environment = app.run(args).getEnvironment();}
}

3.创建DatabaseConfiguration.java

package com.cppba.config;import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.boot.bind.RelaxedPropertyResolver;
import org.springframework.context.ApplicationContextException;
import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.orm.hibernate4.HibernateTransactionManager;
import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.util.StringUtils;import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.Properties;@Configuration
@EnableTransactionManagement
public class DatabaseConfiguration implements EnvironmentAware {private Environment environment;private RelaxedPropertyResolver datasourcePropertyResolver;//从application.yml中读取资源@Overridepublic void setEnvironment(Environment environment) {this.environment = environment;this.datasourcePropertyResolver = new RelaxedPropertyResolver(environment,"spring.datasource.");}//datasource@Bean(initMethod = "init", destroyMethod = "close")public DataSource dataSource() throws SQLException {if (StringUtils.isEmpty(datasourcePropertyResolver.getProperty("url"))) {System.out.println("Your database connection pool configuration is incorrect!" +" Please check your Spring profile, current profiles are:"+Arrays.toString(environment.getActiveProfiles()));throw new ApplicationContextException("Database connection pool is not configured correctly");}DruidDataSource druidDataSource = new DruidDataSource();druidDataSource.setUrl(datasourcePropertyResolver.getProperty("url"));druidDataSource.setUsername(datasourcePropertyResolver.getProperty("username"));druidDataSource.setPassword(datasourcePropertyResolver.getProperty("password"));druidDataSource.setInitialSize(1);druidDataSource.setMinIdle(1);druidDataSource.setMaxActive(20);druidDataSource.setMaxWait(60000);druidDataSource.setTimeBetweenEvictionRunsMillis(60000);druidDataSource.setMinEvictableIdleTimeMillis(300000);druidDataSource.setValidationQuery("SELECT 'x'");druidDataSource.setTestWhileIdle(true);druidDataSource.setTestOnBorrow(false);druidDataSource.setTestOnReturn(false);return druidDataSource;}//sessionFactory@Beanpublic LocalSessionFactoryBean sessionFactory() throws SQLException{LocalSessionFactoryBean localSessionFactoryBean = new LocalSessionFactoryBean();localSessionFactoryBean.setDataSource(this.dataSource());Properties properties1 = new Properties();properties1.setProperty("hibernate.dialect","org.hibernate.dialect.MySQL5Dialect");properties1.setProperty("hibernate.show_sql","false");localSessionFactoryBean.setHibernateProperties(properties1);localSessionFactoryBean.setPackagesToScan("*");return localSessionFactoryBean;}//txManager事务开启@Beanpublic HibernateTransactionManager txManager() throws SQLException {HibernateTransactionManager hibernateTransactionManager = new HibernateTransactionManager();hibernateTransactionManager.setSessionFactory(sessionFactory().getObject());return hibernateTransactionManager;}
}

4.创建CommonAction.java(这是一个测试类)

package com.cppba.web;import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;@RestController
@Transactional
public class CommonAction {@Resourceprivate SessionFactory sessionFactory;@RequestMapping("test")public void test(HttpServletResponse response){Session session = sessionFactory.getCurrentSession();SQLQuery sqlQuery = session.createSQLQuery("select * from user");List list = sqlQuery.list();System.out.printf(list.size()+"");try {response.setContentType("application/json");response.setHeader("Cache-Control", "no-cache");response.setCharacterEncoding("UTF-8");response.getWriter().write("{\"msg\":\"调用成功\"}");} catch (IOException e) {e.printStackTrace();}}
}

5.创建application.yml

server:port: 8080address: localhostspring:datasource:url: jdbc:mysql://localhost:3306/cppbausername: rootpassword: root

6.启动项目

我们点击启动按钮


https://github.com/bigbeef/cppba-spring-boot

控制台会打印如下内容:


https://github.com/bigbeef/cppba-spring-boot

https://github.com/bigbeef/cppba-spring-boot

启动成功
接下来我们访问http://127.0.0.1:8080/test
(我的CommonAction中RequestMapping("test"),所以访问路径是test)


https://github.com/bigbeef/cppba-spring-boot

到此spring-boot配置成功!


版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/66983.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息