ImageVerifierCode 换一换
格式:DOCX , 页数:47 ,大小:1.31MB ,
资源ID:26519777      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26519777.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java程序里面的springboot教学教材.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java程序里面的springboot教学教材.docx

1、java程序里面的springboot教学教材java程序里面的spring_boot概念spring boot对spring mvc、tomcat等都做了集成,只需要依赖spring boot的jar,通过注解指定主类,然后执行里面的main方法,它就能启动tomcat提供服务。不需要spring mvc的繁琐配置。使用spring boot时不需要引入spring mvc,tomcat等的依赖,只需要引入spring boot的依赖即可,它会自动寻找spring mvc,tomcat等的合适的版本引入,解决了框架中各种组件版本不一致的问题。安装配置:无ide手工方式:1、新建文件夹Spri

2、ngBootSample2、该文件夹下新建文件pom.xml内容: 4.0.0 com.example myproject 0.0.1-SNAPSHOT org.springframework.boot spring-boot-starter-parent 1.4.0.RELEASE 其中parent里定义了很多依赖的版本,继承它之后,以后的依赖都不用写版本号,全从parent继承,这样可以避免版本冲突,将个依赖的版本都交给了spring boot管理。不过这里的示例没有任何依赖。3、cd到该目录下执行mvn package说明已经构建成功了4、构建web项目spring boot将各功能分成

3、了不同模块,只需要添加需要的模块即可,版本号由spring boot统一管理,添加web模块后,它会自动引入spring mvc、tomcat、spring core等依赖。4.1 pom.xml加入依赖和插件 4.0.0 com.example myproject 0.0.1-SNAPSHOT org.springframework.boot spring-boot-starter-parent 1.4.0.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot

4、-maven-plugin 引入spring-boot-maven-plugin插件可以使mvn package打出的jar包能直接用java jar命令运行,未使用插件:会提示:使用了插件:多了BOOT-INF,主类的class和所有依赖包都在里面。4.2 编写主类java由于添加web依赖后它会自动去找主类的main方法,找不到会报错,因此需要创建主类:创建SpringBootSamplesrcmainjava目录结构在该目录下创建Example.java内容:import org.springframework.boot.*;import org.springframework.boot

5、.autoconfigure.*;import org.springframework.stereotype.*;import org.springframework.web.bind.annotation.*;RestControllerEnableAutoConfigurationpublic class Example RequestMapping(/) String home() return kkk!; public static void main(String args) throws Exception SpringApplication.run(Example.class,

6、args); 其中EnableAutoConfiguration表示该类是主类,从该类main方法启动。RestController是Controller和ResponseBody的组合写法,表示方法返回的内容直接给客户端,而不是去找模板。4.3构建运行有3种方式,一种是利用spring boot插件,执行:mvn spring-boot:run它会自动启动tomcat,默认端口是8080或者mvn package打出jar文件,然后执行:java -jar target/myproject-0.0.1-SNAPSHOT.jar第三种方式是在ide里面直接执行主类的main方法。5、访问应用h

7、ttp:/localhost:8080使用ide创建:idea和eclipse中创建maven项目,跟手工方式一样配置即可。idea向导创建idea中还提供了直接创建spring boot项目的方式,可以通过向导勾选web等spring boot的模块:File-New Project-Spring Initializr配置说明向导创建出来的工程配置跟手工创建的一致:自动创建的主类:注意这里创建了一个配置文件,默认是空的。可以将很多配置放在里面,如启动端口,数据库连接等自定义配置信息。EnableAutoConfiguration 和 SpringBootApplication说明 Sprin

8、gBootApplication等同于Configuration,EnableAutoConfiguration,ComponentScan三个属性的组合。当访问非主类的Controller时,就需要主类配置ComponentScan属性才能扫描到,否则扫描不到。因此主类上通常用 SpringBootApplication,这样就可以扫描到其他类的bean。修改端口和上下文路径application.properties中增加配置:server.port=90server.context-path=/kkk访问:使用yml配置yml文件配置可以减少properties的配置量,如:注意:1、冒

9、号后面必须带一个空格,否则无法识别2、要注意缩进,因为它通过代码行缩进确定属性归属级别的。使用value读取配置yml配置:读取:测试:配置中引用配置:用$引用即可,如: 注入分组配置:如果配置的属性较多,则使用value需要对每个属性都写一个变量来接收,很不方便,可以将属性放到一个分组里,然后定义一个实体类来接收参数,使用时只用引用该实体类即可:这里的prefix跟配置中的对应。这里使用ConfigurationProperties注入了company里面的属性。也可以直接注入到Controller,需要在controller中定义配置的属性不过最好不要这样用。如:。分dev、online环

10、境配置:如:java -jar指定环境不过这种方式切环境需要改代码,可以在java jar运行参数中指定环境,它会覆盖掉配置中指定的环境。如:java -jar kkk-0.0.1-SNAPSHOT.jar -spring.profiles.active=online使用thymeleaf模板thymeleaf是spring提供的模板,类似于freemarker、velocity等。pom.xml加入依赖: org.springframework.boot spring-boot-starter-thymeleaftemplates目录下新建index.html然后使用Controller即可

11、返回模板。使用常用的springmvc注解匹配多个路径如:RequestMapping(value = list, users)public String list() return index;GetMapping、PostMapping等的简化写法GetMapping(list)相当于RequestMapping(value = list, method = RequestMethod.GET).PostMapping、PutMapping等同理。使用spring data jpajpa是一套java提出的规范,用于持久化操作,jpa有很多实现,如hibernate、toplink等。sp

12、ring data jpa是封装在hibernate、toplink等上面一层的实现,用户通过它来操作hibernate等,可以不关心底层实现。配置pom.xml加入依赖: org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-javaapplication.yml配置:spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql:/127.0.0.1:3306/users username: root p

13、assword: 123456 jpa: hibernate: ddl-auto: update show-sql: true其中ddl-auto:update表示如果没有表会自动创建表,有表则不动。create表示则每次都会把原表drop掉重新创建。create-drop表示每次都重新创建表,应用停下来就把表删除none表示不执行任何ddl。validate表示不执行ddl,但会检查实体类和表结构是否一致,不一致就报错。show-sql:true表示打印sql语句。创建实体类Company.java:import org.hibernate.annotations.Generated;imp

14、ort org.springframework.boot.autoconfigure.domain.EntityScan;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;/* * Created by

15、Administrator on 2017/12/7. */Entitypublic class Company Id GeneratedValue private Long id; private String name; private String address; public Long getId() return id; public void setId(Long id) this.id = id; public String getAddress() return address; public void setAddress(String address) this.addr

16、ess = address; public String getName() return name; public void setName(String name) this.name = name; 其中Id表示主键, GeneratedValue表示自动生成执行程序即可自动创建表Long映射成了bigint(20)String映射成了varchar(255)增删改查操作:查询全部数据新增数据查询单条数据更新更新也是调用save,发现有id就自动执行update语句删除根据条件查询接口里增加的这个方面名字是约定,它会自动根据name去查询。开启事务需要开启事务的方法上增加Transact

17、ional注解即可。表单验证1、实体类上用注解加条件:2、方法参数上用Valid指定验证的实体,后面紧接一个BindingResult参数获取验证结果。RequestMapping(addCompany)public Company addCompany(Valid Company company, BindingResult bindingResult) if (bindingResult.hasErrors() System.out.println(bindingResult.getFieldError().getDefaultMessage(); return null; return

18、companyRepository.save(company);这里如果不返回null,则执行到companyRepository.save(company);时会抛出异常,jpa会验证实体类的属性。异常处理可以异常进行统一处理定义异常处理类:MyExceptionHandler.java:package com.example.demo;import org.springframework.web.bind.annotation.ControllerAdvice;import org.springframework.web.bind.annotation.ExceptionHandler;i

19、mport org.springframework.web.bind.annotation.ResponseBody;/* * Created by Administrator on 2017/12/15. */ControllerAdvicepublic class MyExceptionHandler ExceptionHandler(value=Exception.class) ResponseBody public String kkk() return error happend; 它会自动捕捉异常调用方法。 一般会自定义异常类型,调用不同方法,这里使用Exception异常类只是为

20、了做示范。自定义异常类通常会增加code属性,抛异常时传入code,外面可以取得code。通常使用方法:ResultEnum.javapublic enum ResultEnum ERROR(-1, 未知错误), SUCCESS(0, 成功); private Integer code; private String msg; ResultEnum(int code, String msg) this.code = code; this.msg = msg; public Integer getCode() return code; public String getMsg() return

21、msg; MyException.javapublic class MyException extends RuntimeException private Integer code; public MyException(ResultEnum resultEnum) super(resultEnum.getMsg(); this.code = resultEnum.getCode(); public Integer getCode() return code; public void setCode(Integer code) this.code = code; 抛异常throw new M

22、yException(ResultEnum.ERROR);MyExceptionHandler.javaimport org.springframework.web.bind.annotation.ControllerAdvice;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.bind.annotation.ResponseBody;/* * Created by Administrator on 2017/12/15. */ControllerAdv

23、icepublic class MyExceptionHandler ExceptionHandler(value=MyException.class) ResponseBody public String kkk(MyException e) return e.getMessage(); ExceptionHandler(value=RuntimeException.class) ResponseBody public String kkkkkk(RuntimeException e) return runtime exception; 注意这里的MyException继承了RuntimeE

24、xception,它会自动判断抛出异常的类型,找到最精确的匹配,如抛出MyException,则会调用kkk方法。使用AOP1、加入aop依赖 org.springframework.boot spring-boot-starter-aop2、编写切面类:如:package com.example.demo;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.springframework.stereotype.Component;/* * Created

25、by Administrator on 2017/12/14. */AspectComponentpublic class CompanyAspect Before(execution(public * com.example.demo.CompanyController.list(.) public void beforeList() System.out.println(aspect-before list); 3、测试:springaop各种注解的详细用法参见”springaop.docx”主类的位置和spring扫描包路径默认的spring扫描包路径是从主类开始一层层往下扫描,也可以在主类上用注解设置,如:ComponentScan(basePackages=com.example)如果类没有在扫描包路径下,则即使加了

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1