




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在IDEA环境下创建一个 Spring boot程序一、点击New Project后,选择Spring Initializr。如下图所示,此时,如 果右侧你的JDK自动出现了,那可以省很多事。如果没有自动出现,则 需要你点击New,去选择你JAVA的安装目录。(为什么需要这样因为Spring的运行需要JAVA所以IDE需要知道你的JAVA安装目录。)二、进入下一步后,会让你设置一下你工程的名字等基本信息。demoName:Type:Maven Project (Generate a MavenPackaging:JarJava Version:1.8Language:JavaCroup:com
2、.exampleArtifact:demoVersion:O.O.l-SNAPSHOTDescription: Demo projectfor Spring BootPackage:com.example三、然后这个界面比较重要,它的作用是在开始的时候,自动下载一些jar包。你勾选一个,他就会自动下载。请按照需求勾选。Spring Boot Version:13.3Dependencies Core Security Cache Retry WebM WebRat packBf AOPDevToolsF LombokWebsockeVaadinf Rest Repositories HAL B
3、rowser 机 Mobile Template Engines FreemarkerMustache SQL nf jpa HSQLDBVelocity JOOQApache De NoSQLMongoDCassandrd四、填写工程名jjfl New ProjectProject name:demoProject location: rejectdemo卜 More Settin-gsPreii五、OK,现在Intellij就自动为我们创建好一个 Springboot的程序了哦如下图所示:Spring boot 写一个 Hello world现在开始写第一个Hello World”看下图:
4、门blog -/IdeaProjects/blog Q .idea tl .mvn D src D main 口 java ©com .example时 DemoApplication Ce re sources由 static©perties testR blogJmlmvnwmvnwxmdm pom,xmlHh External Libraries上图中的是一个包名,为了代码可读性高,我们会使用MVC的开发模式,在这个包下面,再新建几个包,分别用来写不同的代码。需要新建 的包如下:1. controller包:用来写控制器
5、代码,控制器对应不同的请求,是网 络请求的第一层。2. model包:里面每个class可以对应一个数据表,当你写好 class, 并且运行工程时,Springboot和Hibernate会自动为你在数据库里创建 表。3. repository包:这里封装了所有对数据表的增删改查操作。以后你 需要操作数据库,其实就是使用这里的接口。4. service包:比如把登录、注册等一个完整的逻辑,封装为一个service,彳ft controller调用,可以极大地简化开发,同时代码也具有更 高的可读性。下面,让我们来建立这四个包吧 在这个包上右键,然后new 一个包出 来。如图所示:我这里创建好包名
6、后,目录结构是这样的:EPJ rrojecx 3 干【¥ 口blog -/IdeaProjects/blog.idea.mvnisrc亡main Djava B com.exampleE3 controller位model应repositoryEl service6 DemoApplication resources位staticE templates oapplication.p rope rties D test blog.iml mvnwmvnw.cmdtYf pom.xmlExternal Libraries好了,到这一步,我们终于可以开始写代码啦在本文里,我们将不会用至U
7、service、model、repository,只会用到 controller 来写一个简单 的Hello World。让我们开始写吧:首先,在controller这个包上点击右键,新建一个class,名字就叫nana, 如下图所示:严格按照前面的教程来,你的包名可能和我的不一样,所以这个代码复制过去后,请自己检查一遍!】package * Created by longge93 on 16/4/14. */RestControllerEnableAutoConfigurationpublic class nana RequestMapping(value="/",met
8、hod =public String index() return "Hello World";然后我们来运行以下我们的工程,运行方法如下图所示:写代码的过程都是不顺利的 虽然我们点了运行,但是下面的控制台里 却提示我们运行失败了,从上图的下面看出,是 hibernate出错了。为 什么呢因为我们在 Maven里包含了 MySQL的jar包,但是却没有配置 数据库连接需要的账号和密码等信息。所以 hibernate会报错因为我 们这篇文章里,只是为了输出 hello world,用不着数据库。所以我们先 去pom文件里注释掉数据库相关的jar包应该就OK了。我注释完后, 我
9、的pom文件是这样的,请仔细检查:<xml version="" encoding="UTF-8">project xmlns="" xmlns:xsi=""xsi:schemaLocation=""><modelVersion> <groupId></groupId><artifactId>demo</artifactId> version<packaging>jar</packaging>&
10、lt;name>demo</name><description>Demo project for Spring Boot</description>parent<groupId> <artifactId>spring-boot-starter-parent</artifactId>version <relativePath/> <!- lookup parent from repository -> </parent><properties>>/></
11、properties>dependencies<dependency><groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency><!-<dependency>-><!-<groupId> <!-<artifactId>spring-boot-starter-data-jpa</artifactId>-><!-</dependency>-><
12、!-<dependency>-><!-<groupId> <!-<artifactId>spring-boot-starter-jdbc</artifactId>-><!-</dependency>-><!-<dependency>-><!-<groupId> <!-<artifactId>spring-boot-starter-redis</artifactId>-><!-</dependency>-&
13、gt;<dependency><groupId> <artifactId>spring-session</artifactId></dependency><dependency><groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId> <artifactId>spring-boot-starter-we
14、b</artifactId></dependency><!-<dependency>-><!-<groupId>mysql</groupId>-><!-<artifactId>mysql-connector-java</artifactId>-><!-<scope>runtime</scope>-><!-</dependency>-><dependency><groupId> <arti
15、factId>spring-boot-starter-test</artifactId><scope>test</scope>/dependency/dependencies<build><plugins><plugin><groupId> <artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>/project此时, 依然报错: Cannot det
16、ermine embedded database driver class for databasetype NONE解决办法:注释掉pom文件中jap和session,在完成以后,pom配置如下<xml version="" encoding="UTF-8"><project xmlns="" xmlns:xsi=""xsi:schemaLocation=""><modelVersion> <groupId></groupId><
17、;artifactId>demo</artifactId>version<packaging>jar</packaging><name>demo</name>descriptionDemo project for Spring Boot/description<parent>groupId <artifactId>spring-boot-starter-parent</artifactId><version> <relativePath/> <!- lookup
18、parent from repository -></parent><properties>< < <></></properties><dependencies><dependency><groupld><artifactld>spring-boot-starter-aop</artifactld></dependency><dependency><groupld><artifactld>spring-boo
19、t-starter-web</artifactld></dependency><dependency><groupld><artifactld>spring-boot-starter-test</artifactld><scope>test</scope></dependency><dependency><groupld><artifactld>spring-boot-starter-thymeleaf</artifactld></d
20、ependency></dependencies><build><plugins><plugin><groupld><artifactld>spring-boot-maven-plugin</artifactld></plugin></plugins></build></project>然后我们再点击那个三角形运行,你会发现运行成功啦如下图所示:来后,其实就相当于跑起来一个网站。现在让我们去网页里看看我们的Hello World有没有正常工作吧在浏览器里,打
21、开,你会发现输出了 Hello World来源:boot在Spring mvc下接入微信在我们搭建好Spring boot环境后,可以很容易的使用 Spring mvc不需要复杂的 配置,只需要做一些基本的注解就行了。这一章讲述如何在Spring mvc下去接入微信。一、接入微信需要一个公网IP,这里我们使用的是ngrock内网穿透工具。运行-cmd,进入ngrock解压目录,输入命令 ngrok-subdomain xpeng -config= 8。80其中yxpeng是可以自己配置的子域名,8080端口通常设置为你的项目运行Tuinne 1 Rtdtu苜UersianFaruardingF
22、orwardIngUcb Interface tt CannAvg Conn TimeHTTP RequestsGET Zwec hat/chec kzyxp GET /uec hat/c hec k/yxp GET Zue e hat/c heckxyxp GET /GFT ZFau icnn - ico(Ctr-L-*-C 七。quit r 1.7/1.7littp:/yxpeng.Im- -> 127.0.B. 1littps :ZZ5xpens.limatm . can -127.0. 9.1: S080=4640656661.24ns2602S02002009
23、RI1二、与用servlet接入微信一样的,我们需要接受到微信后台通过get请求传过来的几个参数。首先,写了一个 model,其中封装了这四个参数。package/* 微信接入校验信息model* Created by Administrator on 2016/11/8 0008.* /public classCheckModel private String signature;private Long timestamp;private Long nonce;private String echostr;public String getSignature() return signat
24、ure;public void setSignature(String signature) =signature;public Long getTimestamp() return timestamp;public void setTimestamp(Long timestamp) =timestamp;public Long getNonce() return nonce;public void setNonce(Long nonce) =nonce;创建一个controller类,其中添加一个 validate方法,用来接收这个 model并进 行处理在tokenService中,分离出
25、这四个参数,然后对 token,timestamp和nonce这三 个参数进行字典排序,然后进行 SHA1加密,将密文与signature对比,如果相同就 返回 echostr.package import importimport import import /* Created by Administrator on 2016/11/8 0008.*/Servicepublic classTokenServiCe /* 微信接入数据验证* param wxToken* param tokenModel* return*/Transactionalpublic String validate
26、(String wxToken, CheckModel tokenModel)String signature = ()Long timestamp =();Long nonce =()String echostr =();if(signature!=null&×tamp!= null&nonce!二null) String str = wxToken, timestamp+"", nonce+"”; (str); oLowerCase()基本配置G 基本配置/延写服务器配置请填写接口配置信息r此信息需要伤拥有自己的服资器窗源.埴
27、写的URL需要正确响应撤信发送的Token蕤证,请阅i雌人指南.URLhttp:/yxpeng.h mdtmom/wec ha t/check/yxp必须以Mtp:或https:/班头,分别支持80端口和44g瑞.Tokenyxp必须为英文且澈字,长度为3T2字符.什么是Tokon ?随机生成0-9.EncodingAESKeyL5FO6cvJrVG4F7PFQOruQjjpwiy6ZQxGVxnLTIJH9p 43 /43消息加密密钥由43位字符组成,可随机修改.字符范围为A-乙a-z 什么是 Encoding AES Key ?涓息加电方式请根据业务需要r选择消息加邮国类型,启用后符立即生
28、效明文归;明文模式下r不使用消息体加解密功能,安全系数较低薪容福式in £. Ji* r r- nU, ” ,ii - j rTTnr" -Tr tit,一+ " = :username"),NamedQuery(name = "getUsernamePasswordToken", query = "select new from User u where u." + + " = :username")(2)在interface中定义与对应的方法public interface UserRepo
29、sitory extends JpaRepository<User, Long> List<User> findByLastname(String lastname);User findByEmailAddress(String emailAddress); 使用Query自定义查询(Spring Data提供的) 这种查询可以声明在 Repository方法中,摆脱像命名查询那样的约束,将查询直接在相应的 接口方法中声明,结构更为清晰,这是 Spring data的特有实现。例如:public interface UserRepository extends JpaR
30、epository<User, Long> Query("select u from User u where = 1")|User findByEmailAddress(String emailAddress);Query与Modifying执行更新操作这两个annotation 一起声明,可定义个性化更新操作,例如只涉及某些字段更新时最为常用, 示例如下:ModifyingQuery("update User u set = 1 where = 2")int setFixedFirstnameFor(String firstname, S
31、tring lastname);索引参数与命名参数(1)索引参数如下所示,索引值从1开始,查询中" X”个数需要与方法定义的参数个数相一致,并且顺序也要一致ModifyingQuery("update User u set = 1 where = 2")int setFixedFirstnameFor(String firstname, String lastname);(2)命名参数(推荐使用这种方式)可以定义好参数名,赋值时采用Param("参数名"),而不用管顺序。如下所示:public interface UserRepository
32、extends JpaRepository<User, Long> Query("select u from User u where = :firstname or = :lastname") User findByLastnameOrFirstname(Param("lastname") String lastname, Param("firstname") String firstname);4 . Transactionality (事务)操作单个对象的事务Spring Data提供了默认的事务处理方式,即所有的查询均声明为只读事务,对于持久化,更新
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人员管理学习报告
- 肺结核传染病知识
- 院子出租整租协议书
- 预防夫妻出轨协议书
- app软件转让协议书
- 锯末承包合同协议书
- 车子出租代理协议书
- 酒店物品交接协议书
- 车辆短租合同协议书
- 养殖地租用合同协议书
- 第五版-FMEA培训教材-新版
- 食品安全与日常饮食智慧树知到期末考试答案章节答案2024年中国农业大学
- PE袋化学品安全技术说明书MSDS(聚乙烯塑胶袋)
- 简明疼痛评估量表
- 七人学生小品《如此课堂》剧本台词手稿
- GB/T 31586.1-2015防护涂料体系对钢结构的防腐蚀保护涂层附着力/内聚力(破坏强度)的评定和验收准则第1部分:拉开法试验
- 大坝安全监测培训课件
- 高等数学上册ppt课件完整版
- 电力建设热工热控作业指导书
- 甲醇及制氢装置预试车方案
- 分子的立体构型
评论
0/150
提交评论