php做网站后台语言/网站建设品牌公司
夜光序言:
我以为爱情可以克服一切,谁知道她有时毫无力量。我以为爱情可以填满人生的遗憾,然而,制造更多遗憾的,却偏偏是爱情。阴晴圆缺,在一段爱情中不断重演。换一个人,都不会天色常蓝。
正文:
十六、springMVC
1.springMVC概述
spring为展现层提供于MVC设计理念,web框架是当前最主流的MVC框架之一,springMVC通过一套MVC注解让POJO成为处理请求控制器无实现任何接口
支持REST格式的URL请求。
2.开发步骤
1.加入jar包
2.在web.xml中配置dispatcherServlet程序
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
说明:load-on-startup的作用是标记容器是否在启动的时候就加载这个servlet,当值为0或者大于0时,表示容器在启动时就加载这个servlet
当是一个负数或者没指定时,则指示容器在该servlet被选择时才加载,正数值越小,启动servlet的优先级越高。
3.加入springMVC配置文件
1.在配置文件中加入springMVC扫包
<context:component-scan base-package="test.controller"></context:component-scan>
2.在配置文件配置视图解析器
<!-- 配置视图解析器: 如何把 handler 方法返回值解析为实际的物理视图 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 资源前缀路径 -->
<property name="prefix" value="/WEB-INF/views/"></property>
<!-- 资源后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>
4.建立控制类并加入注解@controller,表示为springmvc控制器 ()
5.在方法上加入注解@RequestMapping("路径"),表示为请求路径
6.在web.xml文件中配置<servlet-mapping>表示处理浏览器请求拦截路径
<servlet-mapping>
<servlet-name>despatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
3.@ReqeustMapping()
1.@ReqeustMapping()除了修饰方法,还可以修饰类
定义处:提供初步的请求信息
2.方法处:提供进一步的细分映射信息,相当于类定义处的URL,若类定义处未标注@ReqeustMapping()则方法处标记的URL相当于web应用的根目录。
4.@ReqeustMapping()请求方式
@ReqeustMapping()不仅可以请求URL映射请求,还可以请求方法,请求参数及请求头。
5.@PathVariable映射URL绑定占位()
带占位:URL是spring3.0新增功能,该功能在springMVC向REST标准挺进发展过程中具有意义
通过@PathVariable{}可以将URL中占位参数绑定到控制器方法参数中,URL中占位可以通过PathVariable绑定到操作方法参数中()
6.RequestParam()
通过RequestParam()可以绑定请求传入参数,required属性默认为true,参数必须传入,设置为false参数可以不传入,defaultValue属性是设置默认值
十七、Mybatis
1.Mybatis介绍
mybaits是支持普通SQL查询,存储过程和高级映射的优秀持久层框架,mybaits消除了几乎所有JDBC代码和参数的手工设置以及对结果集的检索封装
mybaits可以使用简单的XML或者注解用于配置和原始映射,将接口和java的POJO映射成数据库中的记录。
2.hibernate与mybaits的区别
hibernate是从对象得到SQL
mytatis是从SQL得到对象
3.开发步骤
1.添加jar包
2.创建库+表
3.添加Mybatis的配置文件conf.xml,用于mybatis操作数据库信息,对数据库的映射配置
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
4.定义表所对应的实体类
5.定义操作数据库表的sql映射文件,用于操作数据库
<mapper namespace="test.mytatis.Usermapper">
<select id="getUser" parameterType="int" resultType="test.mytatis.User">
select * from users where id= -------------(SQL语句)
</select>
</mapper>
6.在config.xml文件中添加表的映射文件地址
<mappers>
<mapper resource="mapper/userMapper.xml"/>
</mappers>
7.编写测试代码:执行定义的SQL语句
4.实现关联查询
1.一对多关联
嵌套结果查询:使用嵌套结果映射来处理重复的联合结果的子集封装联表查询的数据(去除重复的数据)
十八、springBoot
1.springBoot介绍
springBoot是pivotal团队提供的全新框架,其设计目的是用来简化spring应用初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
2.为什么要有springBoot?
简化XML配置,提高开发效率
配置或者是YML文件
3.springboot作用
简化XML配置(mybatis除外)
独立的应用程序
单独war工程,不需要集成tomcat插件运行(内嵌tomcat)
简化maven配置
4.开发步骤
1.建立maven工程
2.在pom.xml中加入springBoot依赖
3.创建控制类
4.在类前加入RestController注解,在方法上加入RequestMapping
说明:RestController是表示修饰该Controller所有的方法返回JSON格式,直接可以编写Restful接口
5.建立主函数
6.在类前加入EnableAutoConfiguration注解
说明:EnableAutoConfiguration作用在于让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置
7.在主函数中调用方法
SpringApplication.run(SpringBootController.class, args);
8.运行程序
5.静态资源访问
默认配置:Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则
/static
/public
/resources
/META-INF/resources
6.springBoot全局捕获异常
1.定义一个异常类,表示拦截所有异常
2.在异常类前加ControllerAdvice注解,表示拦截所有异常
3.在方法前加ExceptionHandler(RuntimeException.class),表示拦截所有运行时异常
说明:ExceptionHandler:表示拦截异常
ControllerAdvice:是 controller 的一个辅助类,最常用的就是作为全局异常处理的切面类
7.渲染Web页面
1.说明是模板引擎?
模板引擎是动态页面静态化
2.什么是动态页面静态化?
搜索引擎,SEO--(伪静态)html
3.springBoot提供了默认配置的模板引擎主要有:Thymeleaf、FreeMarer、Velocity、Groovy、Musttache
springBoot建议使用这些模板引擎,避免使用jsp,若一定要使用jsp将无法实现SpringBoot的多种特性。
8.springBoot集成FreeMarer
1.在pom.xml中加入FreeMarer依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
2.创建控制类,并加上controller注解
3.在src/main/resources/创建一个templates文件夹,后缀为*.ftl
4.启动
9.jsp和FreeMarer的区别
jsp底层是通过servlet程序运行的
ftl是转换成html格式
10.springBoot集成JSP
1.创建maven工程
2.在src/main/resources/创建application.properties配置文件文件
3.在application.properties配置文件中加入
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
表示跳转的页面
11.springBoot集成JDBC
1.引入springBoot-JDBC依赖
2.在src/main/resources/创建application.properties配置文件文件
3.加入配置文件
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
4.写数据持久层接口,并实现
5.在持久层接口上加入service注解,在实现类创建JdbcTemplate注解,并在前面加入Autowired注解
6.写控制类,运行
12.springBoot集成mybatis
1.加入mybatis依赖
2.在src/main/resources/创建application.properties配置文件文件
3.加入配置文件
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
4.创建mapper接口
5.在接口方法上加入注解select、update、insert、delete
6.创建控制类
7.创建tomcat启动类,并加上注解扫包
ComponentScan(basePackages="test.controller")
MapperScan(basePackages="test.mapper")
EnableAutoConfiguration
8.运行
13.springBoot集成JPA
1.JPA的作用
是对hibernate的封装
14.springBoot集成事务管理
springboot默认集成事务,只主要在方法上加上Transactional注解即可
15.springboot多数据源
1.多数据源
MQ、两段提交协议、atomikos+jta ,springBoot默认支持多数据源回滚
2.两个数据库中源中,一个项目中,代码如何区分数据源?
1.注解标识
2.分模块
16.springBoot整合jta+atomikos
1.分布式事务解决方案
操作多个数据源解决方案:atomikos+jta、两段提交协议、MQ推送
2.步骤:
1.引入atomikos-jta依赖
2.编写工具类,用于读取配置文件相关信息
3.在类前加入ConfigurationProperties(prefix = "mysql.datasource.test")表示扫描配置
4.建立数据源类
5.在类前加入Configuration注解
6.在类前加入MapperScan(basePackages = "com.itmayiedu.test01", sqlSessionTemplateRef = "testSqlSessionTemplate")表示扫描mapper范围
7.在方法上加入@Bean(name = "testDataSource")表示配置数据源
8.在方法前加入Primary注解表示为单例
9.编写启动类
10.在类前EnableConfigurationProperties()
17.springboot集成ehcache
1.缓存
缓存分为JVM缓存和内存缓存
2.为什么要用缓存?
减轻数据访问压力
3.步骤
1.引入ehcache依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
2.新建ehcache.xml
3.创建数据访问接口
4.在接口前加入CacheConfig(cacheNames="baseCache")注解,baseCache表示读取配置文件中的名称
5.编写启动类
6.在类前面加上EnableCaching注解,表示开启缓存
18.定时任务
在Spring Boot的主类中加入EnableScheduling注解,启用定时任务的配置
19.异步调用
启动类前加上@EnableAsync注解 ,需要执行异步方法上加入Async注解
20.YML使用
YML用于修改端口号
1.创建application.yml
2.加入元素
server:
port: 8090
context-path: /index
21.发布打包
1.进入工程目录中
2.启动cmd命令行
3.输入 mvn clean 命令清除target文件
4.输入mvn package 命令进行打包
5.进入target目录,输入 java -jar +包名 运行