金沙棋牌app手机下载

当前位置:金沙棋牌 > 金沙棋牌app手机下载 > SpringBoot第一讲概览,ssh使用多工程怎么依赖spr

SpringBoot第一讲概览,ssh使用多工程怎么依赖spr

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-11-05 18:51

springboot作为现在十分流行的框架,简化Spring应用的初始搭建以及开发过程,现在我们就使用springboot来进行简单的web项目搭建并对项目sql进行监控。

ssh使用多工程怎么依赖springboot,springboot框架要怎么搭建
1、ssh使用多工程的依赖的项目,因为使用restful接口,现在小程序是用PHP开发的要进行对接,现在使用restful接口进行对接会暴露的,想用springboot依赖ssh工程的service,将springboot给小程序PHP调用,请问要怎么搭建springboot框架,怎么跟ssh工程的service进行依赖。
2、ssh框架,jkd1.7

本人的csdn传送门

在使用了一段时间的springboot之后,今天决定开始弄一套完整的springboot的教程,说实话在学习springboot之前,个人已经开始厌倦了代码的编写和视频教程的录制,因为每次录制视频教程那怕一个简单的hello world都不得不面对大量的配置文件,一个helloworld测试程序,业务逻辑只是几秒钟的事情,但是却要花上十多分钟来进行配置。现在有了springboot之后,一切都变得简单了,这部分我们会使用几种方式让大家看到springboot是如何让一个项目变得如此简单的。

项目的搭建就省略了,springboot项目搭建好以后,进行一下操作, 本例子的项目使用 maven 管理的jar

前言

进行web开发的时候Java程序员们难免会碰到那种很小的服务,比如就提供一个生成订单号的接口,或者一个上传文件的服务。而这时我们再去使用SpringMVC这种体量稍大、配置繁琐的框架开发难免会加大工作量,而且是不必要的。这个时候我们就可以选择使用这个微服务框架——springboot进行开发。

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

在开始学习springboot之前,这里依然有一些话需要提前给大家说一下,前段时间一个好朋友给我完整的讲解了springboot,在整个交流的过程中,我们不断重复的一句话是这个功能我们也实现过,那个功能我们也封装过,没错,在原来进行项目开发的过程中为了重用很多东西都是我们为了方便封装过的,但这些封装在每次开发过程中都会让人有不尽人意的感觉,如今我们总算有机会体验一下世界顶级的公司为我们封装的框架了。我相信你只要使用了springboot之后,你就会感觉到站在巨人的肩膀上向前走是多么幸福的一件事情。但是这里依然要强调一件事,在学习springboot之前,必须把原有的spring的一套原理和MVC架构学习透彻,因为springboot已经把最底层的东西全部实现了,此时如果你对刚才提及的原理不清楚的话,在使用过程中遇到问题你将会束手无策,springboot不是我们走捷径的工具,而是在掌握原理之后帮助我们快速开发的利器。如果对这些知识点有疑问的朋友,可以下载我原来录制的教程(MVC等设计模式讲解,由于目前百度网盘已经无法使用,可以通过网络下载或者通过QQ[64831031]联系我获取这部分的教程。),该教程虽然有些老,但是原理都讲清楚了,有兴趣的朋友可以找来看看。

1.加入依赖, 在pom.xml文件 增加配置

springboot框架的搭建与简单的REST风格的MVC架构demo

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.1.RELEASE</version> <relativePath/> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>

其中核心依赖是 spring-boot-starter-web

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

访问静态资源文件可以加入模板:

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

金沙棋牌app手机下载,废话不说了,这里我们开始正式进入springboot的第一讲的教程,我们先用相对复杂的方式搭建一个springboot的项目看看,目前STS和Intellij IDEA都能对支持springboot的开发,我们这里使用后者,另外在机器上还得安装好jdk,maven等工具,jdk我使用的版本是8,maven是3.3.9。

<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>
  <version>1.1.8</version>
</dependency>

2、

配置数据源 ,  在appcation.yml文件加入druid的数据源配置 

# 数据库访问配置
# 主数据源,默认的
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/demo
spring.datasource.username=root
spring.datasource.password=admin

# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打开PSCache,并且指定每个连接上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall,log4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 合并多个DruidDataSource的监控数据
#spring.datasource.useGlobalDataSourceStat=true
spring.jpa.database=mysql
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy

3.使用注解的方式,增加druid的过滤器 ,新增一个类 DruidStatFilter.java

import com.alibaba.druid.support.http.WebStatFilter;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;


@WebFilter(filterName = "druidWebStatFilter", urlPatterns = "/*",
    initParams = {
        @WebInitParam(name = "exclusions", value = "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源
    })
public class DruidStatFilter extends WebStatFilter {

}

4.使用注解的方式 增加 DruidStatViewServlet.java 服务类

import com.alibaba.druid.support.http.StatViewServlet;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;

@SuppressWarnings("serial")
@WebServlet(urlPatterns = "/druid/*", initParams = {
    @WebInitParam(name = "allow", value = ""), // IP白名单
    @WebInitParam(name = "deny", value = ""),
    // IP黑名单
    @WebInitParam(name = "loginUsername", value = "admin"), // 用户名
    @WebInitParam(name = "loginPassword", value = "admin*druid"), // 密码
    @WebInitParam(name = "resetEnable", value = "true")})
public class DruidStatViewServlet extends StatViewServlet {

}

5.这里有个很重要的事情一定不要忘了在启动类中加上servlet的扫描注解 

@ServletComponentScan(value = "自己的包")

6.按理说现在druid就搭建好了可以通过http://localhost:8080/druid/index.html进行正常访问了,但是在操作中我发现sql监控并没有起到作用,也就是并没有sql监控的记录,在多次查阅资料后,
终于找到解决办法,虽然我们在配置文件application.properties中已经配置了druid数据源,但是在这里我们需要再次将这个DataSource配置到java配置中,这里我们将这个配置直接写入到启动类中。

@Bean
@ConfigurationProperties(prefix="spring.datasource")
public DataSource druidDataSource() {
   return new DruidDataSource();
}

 
这里是springboot的核心启动类
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;@Configuration@ComponentScan@EnableAutoConfigurationpublic class Application{ public static void main(String[] args) { SpringApplication.run(Application.class, args); }}

事实上,这个时候已经把框架搭建好了,运行以上main方法即可启动这个项目,但是我们现在看不到效果,接下来,就可以像SpringMVC一样加入MVC三层结构的代码了,目录结构如下图:

金沙棋牌app手机下载 1REST风格的MVC架构demo项目目录结构

其中各层代码如下:

package com.zhang.controller;import java.util.HashMap;import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.servlet.ModelAndView;import com.zhang.entity.Photo;import com.zhang.service.mainService;@RestController@RequestMappingpublic class mainController { @Autowired private mainService mainservice; @RequestMapping public ModelAndView index(ModelAndView mav){ mav.addObject("hello", "这是项目主页,访问根目录到达~~"); mav.setViewName; return mav; } @RequestMapping("/getPhoto") public Object doIt(){ Map<String, Photo> map = new HashMap<String, Photo>(); map.put("photo", mainservice.getPhotoById; return map; }}

package com.zhang.service.impl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.zhang.dao.mainDao;import com.zhang.entity.Photo;import com.zhang.service.mainService;@Service("mainservice")public class mainServiceImpl implements mainService { @Autowired private mainDao maindao; @Override public Photo getPhotoById { return maindao.getPhotoNameById; }}

package com.zhang.dao.impl;import org.springframework.stereotype.Repository;import com.zhang.dao.mainDao;import com.zhang.entity.Photo;@Repository("maindao")public class mainDaoImpl implements mainDao { @Override public Photo getPhotoNameById { Photo p = new Photo(); p.setId; p.setName; return p; }}

package com.zhang.entity;public class Photo { private int id; private String name; public int getId() { return id; } public void setId { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}

金沙棋牌app手机下载 2项目启动日志金沙棋牌app手机下载 3访问结果

首先我们创建一个maven的项目,在这里就不再累赘介绍如何创建一个maven项目了,如果你连maven都不会,建议你先把maven学习了之后再来使用springboot。创建完成项目之后我们需要在pom.xml中加入如下的配置

如上,一个REST风格的MVC架构的demo项目就搭建完成了。

<groupId>org.konghao</groupId><artifactId>hello-springboot</artifactId><version>1.0-SNAPSHOT</version><parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --></parent><properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version></properties><dependencies> <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> <scope>test</scope> </dependency></dependencies>

我们的配置就这么结束了,想想原来我们所做的事情吧,拷贝各种依赖,配置spring的xml,配置spring MVC的xml,配置web.xml,现在已经由springboot帮助我们完成了,看一看我们的依赖包,springboot需要的依赖包都已经加进来了,而且我们都不需要为依赖加任何的版本信息,因为继承了spring-boot-starter-parent,它已经会自动帮助我们选择最理想的版本。一切都变得简单了。

金沙棋牌app手机下载 4springboot概览

接下来我们要创建一个class,注意这class必须在我们的groupId的包下(注意:也不能在任何子包下,springboot会从这个位置去找依赖。),我的groupId是org.konghao,所以我们创建的class的包名是org.konghao.DemoApplication

金沙棋牌app手机下载 5springboot概览

接着写一个main方法

@SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class,args); }}

我们的项目就搭建完成了,注意需要在这个class上增加一个SpringBootApplication的Annotation,这说明该class是一个springboot的运行程序。我们运行一下这个class看看效果

... s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port: 8080 2016-11-21 11:15:23.254 INFO 8420 --- [ main] org.konghao.example.DemoApplication : Started DemoApplication in 6.943 seconds (JVM running for 7.63)

项目已经顺利启动了,而且还是通过web的方式启动了,而且是在8080端口上,我们的一个项目就这样配置完成了,有没有发现是不是非常的简单,在浏览器中访问一下这个端口,我们看到如下一个错误的页面。

金沙棋牌app手机下载 6springboot概览

这是因为我们没有写任何的视图,接下来我们通过原有springmvc的知识写一个HelloController

import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/** * Created by konghao on 2016/11/21. */@RestControllerpublic class HelloController { @RequestMapping public String hello() { return "hello springboot"; }}

这里我们和原有的SpringMVC的区别在于把@Controller换成了@RestController,因为如果使用@controller需要设置一个视图,在springboot之中已经不建议使用jsp了,而是使用thymeleaf,freemarker等模板引擎作为视图,使用@RestController说明这个Controller中的所有的方法返回的是一个JSON的字符串,这样我们就不需要指定专门的视图了。再次运行main函数。

金沙棋牌app手机下载 7springboot概览

springboot已经正常工作了,整个流程变成非常的简单,甚至不需要我们进行任何多余的配置,接下来我们看更方便的一件事,我们首先在pom.xml中加入一个插件

<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins></build>

我们使用maven打一下包,mvn package,此时我们会得到一个hello-springboot-xx.jar的包

金沙棋牌app手机下载 8springboot概览

把这个包拷贝到任意一个目录中,在命令提示符中使用java -jar xxx.jar这个jar包看看效果

金沙棋牌app手机下载 9springboot概览

大家看不需要任何环境,web项目就启动起来了,并且可以通过浏览器访问了,我们甚至都没有设置和容器相关的东西,因为springboot在这个jar文件中已经把Tomcat集成进去了,大家有没有发现一切都变得如此的容易和简单。

到这里我们第一部分的内容差不多结束了,但是这里还要给大家讲一个更方便的工具,如果你记不住springboot的文件夹结构这些,spring提供一个SPRING INITIALIZR帮助我们快速搭建springboot的项目,SPRING INITIALIZR在STS中是天然集成的。在Intellij中需要收费的版本才能使用,但是我们可以通过

金沙棋牌app手机下载 10springboot概览

点击Generate Project之后会得到一个hello的压缩文件夹,解压就可得到完整的springboot的目录结构,我们的第一个Application和pom文件都已经写好了。

金沙棋牌app手机下载 11springboot概览

这就是我们第一次课的内容,相信大家已经看到了Springboot的强悍之处了。本文源码

本文由金沙棋牌发布于金沙棋牌app手机下载,转载请注明出处:SpringBoot第一讲概览,ssh使用多工程怎么依赖spr

关键词:

上一篇:没有了

下一篇:没有了