当前位置: 首页 > news >正文

怎么安装网站源码国外网站

怎么安装网站源码,国外网站,江苏建设省直报名网站,自己开发app挣钱吗Spring Spring 是什么? Spring 是于 2003 年兴起的一个轻量级的,IOC 和 AOP 的 Java 开发框架#xff0c;它 是为了简化企业级应用开发而生的。 Spring有几大特点如下 轻量级的 Spring 框架使用的 jar 都比较小#xff0c;一般在 1M 以下或者几百 kb。Spring 核 心功能…Spring Spring 是什么? Spring 是于 2003 年兴起的一个轻量级的,IOC 和 AOP 的 Java 开发框架它 是为了简化企业级应用开发而生的。 Spring有几大特点如下 轻量级的 Spring 框架使用的 jar 都比较小一般在 1M 以下或者几百 kb。Spring 核 心功能的所需的 jar 总共在 3M 左右。 Spring 框架运行占用的资源少运行 效率高。 IOC 控制反转即 Inversion of Control缩写为 IOC就是由 Spring IoC 容器管理对象而 非传统实现中由程序代码直接操控. AOP 直译过来就是 面向切面编程。AOP 是一种编程思想是面向对象编程OOP 的一种补充。面向对象编程将程序抽象成各个层次的对象而面向切面编程是将 程序抽象成各个切面. 一站式框架 Spring 本身也提供了数据访问功能和 web 功能,以及可以很好的管理其他框架. 提供核心功能,主要是IOC,创建管理对象.       提供面向切面编程,增强程序扩展       对数据访问层进行了封装(重点在于事务管理)       对web层进行封装,使得请求更加便捷 Spring 体系结构 Core Container(核心容器): Beans: 管理 Beans         Core: Spring 核心         Context: 配置文件         ExpressionLanguage: SpEL 表达式  AOP(切面编程) AOP 框架: Aspects Data Access(数据库整合):   JDBC, ORM, OXM, JMS, Transaction Web(MVC Web 开发):    Web, Servlet, Portlet, Struts Test(Junit 整合) 官网地址: https://spring.io/ Spring  搭建 Maven 导入 spring 核心基础 jar !-- spring-context -- dependency groupIdorg.springframework/groupId artifactIdspring-context/artifactId version5.2.2.RELEASE/version /dependency 编写 spring 配置文件 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beans xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd bean iduser classcom.ff.spring.bean.User /bean /beans 编写一个 User 实体类 测试 spring IOC(控制反转) 读作“反转控制”(Inverse of Control)更好理解不是什么技术而是一种 设计思想就是将原本在程序中手动创建对象的控制权交由 Spring 框架来 管理。 IOC 容器是具有依赖注入功能的容器负责对象的实例化、对象的初始化对 象和对象之间依赖关系配置、对象的销毁、对外提供对象的查找等操作对象 的整个生命周期都是由容器来控制。我们需要使用的对象都由 ioc 容器进行管 理不需要我们再去手动通过 new 的方式去创建对象由 ioc 容器直接帮我 们组装好当我们需要使用的时候直接从 ioc 容器中直接获取就可以了。 正控若要使用某个对象需要自己去负责对象的创建。 反控若要使用某个对象只需要从 Spring 容器中获取需要使用的对象 不关心对象的创建过程也就是把创建对象的控制权反转给了 Spring 框架。 底层实现方式: 解析 xml/扫描注解标签 工厂模式 反射机制 Spring Bean 管理 基于 xml 配置方式 bean 配置需要 spring 管理的类 id 生成的对象名 class 全类名 name 对象别名,可以为多个 scope:       singleton(默认值):在 Spring 中只存在一个 bean 实例, 单例模式.       prototype:原型 getBean()的时候都会 new Bean()       request:每次 http 请求都会创建一个 bean, 仅用于 WebApplicationContext 环境 session:同一个 http session 共享一个 Bean, 不同 Session 使用不同的 Bean, 使用环境同上 Xml 配置方式依赖注入  指 Spring 创建对象的过程中将对象依赖属性简单值集合对象通 过配置设置给该对象。 实现 IOC 需要 DI 做支持 注入的方式 set 方法注入 构造方法注入 注解方式实现 注解开发准备工作 注解需要的 jar 包 注解功能封装在 AOP 包中导入 Spring aop jar 包即可 开启注解扫描 context:component-scan base-package包名 /context:component-scan 注解创建对象 Component(value“user”)等于 bean id“user” class“”/bean Service Repository 以上注解都可以实现创建对象功能只是为了后续扩展功能在不同的层 使用不同的注解标记 Scope(value“prototype”) 原型 Scope(value“ singleton ”) 单例 注解方式注入属性 Autowired Autowired 是 Spring 提供的注解,可以写在字段和 setter 方法上。如果写在 字段上那么就不需要再写 setter 方法。默认情况下它要求依赖对象必须存在 如果允许 null 值可以设置它的 required 属性为 false。 byType 自动注入 该注解默认使用按类型自动装配 Bean 的方式。 byName 自动注入 如果我们想使用按照名称byName来装配可以结合Qualifier 注解一起 使用 需要在引用属性上联合使用注解Autowired 与Qualifier。Qualifier 的 value 属性用于指定要匹配的 Bean 的 id 值。 JDK 注解Resource 自动注入 Spring 提供了对 jdk 中Resource 注解的支持。Resource 注解既可以按名 称匹配 Bean也可以按类型匹配 Bean。默认按照 ByName 自动注入 byName 注入引用类型属性 Resource 注解指定其 name 属性则 name 的值即为按照名称进行匹配 的 Bean 的 id。 注解与 XML 的对比 注解优点 方便,直观,高效代码少没有配置文件的书写那么复杂。 注解缺点以硬编码的方式写入到 Java 代码中修改是需要重新编译代码的。 xml 优点是 配置和代码是分离的,在 xml 中做修改无需编译代码只需重 启服务器即可将新的配置加载。 xml 的缺点是编写麻烦效率低大型项目过于复杂。 Spring JDBC Spring 是个一站式框架Spring 自身也提供了控制层的 SpringMVC 和 持久 层的 Spring JdbcTemplate。 开发步骤 下载 Spring JdbcTemplate 的 jar 包 !-- spring-jdbc -- dependency groupIdorg.springframework/groupId artifactIdspring-jdbc/artifactId version5.2.2.RELEASE/version /dependency !-- 阿里数据源 -- dependency groupIdcom.alibaba/groupId artifactIddruid/artifactId version1.1.10/version /dependency 导入属性文件 context:property-placeholder locationconfig.properties/ 管理数据源对象 spring 管理与数据库链接 (数据源) bean iddataSourceclasscom.alibaba.druid.pool.DruidDataSource propertynamedriverClassName value${driverClassName}/property property nameurl value${url}/property property nameusername value${uname}/property property namepassword value${pwd}/property property nameinitialSize value10/property property nameminIdle value5/property property namemaxActive value20/property /bean 在配置文件中创建 JdbcTemplate bean idjdbcTemplate classorg.springframework.jdbc.core.JdbcTemplate property namedataSource refdataSource/property /bean 在类中获得 JdbcTemplate 对象就可以直接使用。 JdbcTemplate 中常用的方法  execute无返回值可执行 ddl增删改语句 update执行新增、修改、删除语句 queryForXXX执行查询相关语句 不使用 AOP 的开发方式 先定义好接口与一个实现类该实现类中除了要实现接口中的方法外还要 再写两个非业务方法。非业务方法也称为交叉业务逻辑 ➢ doTransaction()用于事务处理 ➢ doLog()用于日志处理 然后再使接口方法调用它们。接口方法也称为主业务逻辑. AOP 概述 AOP 为 Aspect Oriented Programming 的缩写意为面向切面编程通过 预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。 AOP 是 OOP 的延续是软件开发中的一个热点是 java 开发中的一个重要内 容。利用 AOP 可以对业务逻辑和非业务逻辑进行隔离从而使得各部分之间的 耦合度降低提高程序的可重用性同时提高了开发的效率。 AOP、OOP 在字面上虽然非常类似但却是面向不同领域的两种设计思想。OOP 面向对象编程针对业务处理过程的实体及其属性和行为进行抽象封装以获 得更加清晰高效的逻辑单元划分。 而 AOP 则是针对业务处理过程中的切面进行提取它所面对的是处理过程中的 某个步骤或阶段以获得逻辑过程中各部分之间低耦合性的隔离效果。这两种设 计思想在目标上有着本质的差异。 面向切面编程的好处就是: 减少重复,专注业务 注意面向切面编程只是面向对象编程的一种补充。 核心原理 使用动态代理的方式在执行方法前后或者出现异常的时候做加入相关的逻辑 使用案例: 事务处理开启事务关闭事务出现异常后回滚事务 权限判断在执行方法前判断是否具有权限 日志在执行前进行日志处理 AOP 的基本概念 连接点Joinpoint类中可以被增强的方法这个方法就被称为连接点 切入点pointcut类中有很多方法可以被增强但实际中只有 add 和 update 被增了那么 add 和 update 方法就被称为切入点实际实现的连接点 通知(Advice): 通知是指一个切面在特定的连接点要做的事情(增强的功能)。通 知分为方法执行前通知方法执行后通知环绕通知等. 切面(Aspect):把通知添加到切入点的整个过程称为切面. 目标(Target): 代理的目标对象(连接点,切入点所在类) 代理(Proxy): 向目标对象应用通知时创建的代理对象 springAOP 实现 对于 AOP 这种编程思想很多框架都进行了实现。Spring 就是其中之一可 以完成面向切面编程。 AspectJ 是一个基于 Java 语言的 AOP 框架它提供了强大的 AOP 功能,且其实 现方式更为简捷使用更为方便 而且还支持注解式开发。所以Spring 又 将 AspectJ 的对于 AOP 的实现也引入到了自己的框架中。 下载 AOP 相关 jar dependency groupIdorg.springframework/groupId artifactIdspring-aspects/artifactId version5.2.2.RELEASE/version /dependency 基于 aspectj 的 xml 配置方式实现 bean idaopdemo classcom.ff.spring.aop.AopDemo/bean aop:config !-- 配置切入点 -- aop:pointcut expressionexecution(* com.ff.spring.service.UserService.adduser(..)) idadduser/ aop:pointcut expressionexecution(* com.ff.spring.service.UserService.*(..)) idallmethod/ !-- 配置通知和切入点 -- aop:aspect refaopdemo aop:before methodsavelog pointcut-refadduser/ aop:after methodsavelog pointcut-refadduser/ aop:around methodaroundAdvice pointcut-refadduser/ aop:after-throwing methodexceptionAdvice pointcut-refallmethod throwinge / /aop:aspect /aop:config AspectJ 中常用的通知有五种类型 前置通知 before 业务方法执行前调用 后置通知 after-returning 业务方法执行后执行当方法出现异常不执行 异常通知 after-throwing 业务方法出现异常时调用 最终通知 after 业务方法执行后调用 当方法出现异常也会执行 环绕通知 around 基于注解方式的实现 启动 AspectJ 支持: aop:aspectj-autoproxy / Component Aspect public class AOPDemo { Before(execution(* com.ff.spring.demo1.dao.UserDao.*(..))) public void before(){ System.out.println(before); } After(execution(* com.ff.spring.demo1.dao.UserDao.*(..))) public void after(){ System.out.println(after); } Around(execution(* com.ff.spring.demo1.dao.UserDao.*(..))) public void around(ProceedingJoinPoint point) throws Throwable { System.out.println(start); point.proceed(); System.out.println(end); } AfterThrowing(value execution(* com.ff.spring.demo1.dao.UserDao.*(..)),throwing e) public void afterthrow(Throwable){ System.out.println(afterthrow); } AfterReturning(execution(* com.ff.spring.demo1.dao.UserDao.*(..))) public void afterreturn(){ System.out.println(afterreturn); } } Spring 事物管理 事物可以看做是由对数据库若干操作组成的一个单元。 我们在开发企业应用时对于业务人员的一个操作实际是对数据读写的多步操作 的结合。由于数据操作在顺序执行的过程中任何一步操作都有可能发生异常 异常会导致后续操作无法完成此时由于业务逻辑并未正确的完成之前成功操 作数据的并不可靠需要在这种情况下进行回退。 事务的作用就是为了保证用户的每一个操作都是可靠的事务中的每一步操作都 必须成功执行只要有发生异常就回退到事务开始未进行操作的状态,这些操作 要么都完成要么都取消从而保证数据满足一致性的要求 Spring 中的事务管理分为两种形式,一种是编程式事务,一种是声明式事务。 编 程 式 事 务 在 项 目 中 很 少 使 用 , 这 种 方 式 需 要 注 入 一 个 事 务 管 理 对 象 TransactionTemplate ,然后在我们代码中需要提交事务或回滚事务时自己写代 码实现。 声 明 式 事 务管理建立在 AOP 基础上本质是对方法前后进行拦截所以声明式 事务是方法级别的。 Spring 声明式事物管理方式有两种    基于 xml 配置          基于注解实现 Spring 针对不同的 dao 框架提供了不同的实现类,Jdbc,mybatis 事物管理实 现类是 DataSourceTransactionManager 配置事物管理器 !-- 配置 spring 事务管理类, 并注入数据源 -- bean idtransactionManager classorg.springframework.jdbc.datasource.DataSourceTransactionManager property namedataSource refdataSource/property /bean 注解方式 !-- 开启注解事务管理 -- tx:annotation-driven transaction-managertransactionManager/ 在 service 中控制事务     Service(valueuserservice)       Transactiona 声明式事务不生效的场景 Transactional 应用在非 public 修饰的方法上 异常被 catch 捕获导致失效 出现编译期异常 Transactional 事务传播行为设置错误 数据库引擎不支持事务 同一个类中,使用非代理对象调用一个有事务的方法导致事务错误 Spring 事务传播行为 什么叫事务传播行为 即然是传播那么至少有两个东西才可以发生传播。单体不存在传播这个行为。 事务传播行为propagation behavior指的就是当一个事务方法被另一个事 务方法调用时这个事务方法应该如何进行。事务传播行为是 Spring 框架独有 的事务增强特性他不属于的事务实际提供方数据库行为. 例如methodA 事务方法调用 methodB 事务方法时methodB 是继续在调 用者 methodA 的事务中运行呢还是为自己开启一个新事务运行这就是由 methodB 的事务传播行为决定的。 Spring 定义了七种传播行为 Spring 集成 Mybatis Spring 集成 Mybatis 其核心是将 SqlSessionFactory 交由 Spring 管理并由 Spring 管理对 dao 接口的代理实现。 导入 mybatis jar 包 dependency groupIdorg.mybatis/groupId artifactIdmybatis-spring/artifactId version1.3.1/version /dependency 配置 sqlSessionFactory bean idsqlSessionFactory classorg.mybatis.spring.SqlSessionFactoryBean property namedataSource refdataSource/property property nameconfigLocation valuemybatis-config.xml/property property namemapperLocations valuecom/ff/*Mapper.xml /property /bean 指定生成接口代理 bean idmapperFactory classorg.mybatis.spring.mapper.MapperScannerConfigurer property namebasePackage valuecom.ff.ssm.dao/property property namesqlSessionFactoryBeanName valuesqlSessionFactory /property /bean 在 service 中注入 Dao 代理接口此接口有 Spring 代理实现
http://www.w-s-a.com/news/55143/

相关文章:

  • 怎么提高自己网站的知名度电子商务是建网站
  • 官方查企业的网站办公用品网站建设策划书
  • 微信网站搭建哪家好网站中转页
  • 阿里巴巴网站开发是谁长沙自助模板建站
  • 阿里云网站方案建设书网络公司运营是干啥的
  • 南通seo网站排名优化nginx wordpress rewrite
  • 网站做成软件做内部网站费用
  • 浙江企业网站建设网站域名有了 网站如何建设
  • 学编程哪个机构有权威德州做网站优化
  • 最火的网站开发语言福州网站建设服务商
  • 嘉兴网站制作哪里好asp网站源码免费版
  • 如何给网站配置域名百度网站统计添加网址
  • 搭建wap网站磁力引擎
  • 如何给公司网站做推广个人网站可以做社区吗
  • 网站建设为什么不给源代码大理如何做百度的网站
  • 网站代理违法吗网站备份流程
  • 免费域名查询网站wordpress wordfence
  • h5响应式网站模板制作巴南网站制作
  • 网站方案报价软文什么意思
  • 电子商城网站如何建设上海公司车牌价格
  • 丽江网站设计公司专业公司网站设计企业
  • iis怎么建设网站特色产品推广方案
  • 道路建设网站专题品牌网站建设特色大蝌蚪
  • 网站开发组合 所有组合如何做com的网站
  • 电商网站怎么做的Wordpress 报表的插件
  • 纹理网站推荐买了两台服务器可以做网站吗
  • 机关公文写作网站南宁互联网推广
  • 五指山网站开发价格免费申请网站域名
  • 帝国音乐网站怎么做数据表电脑优化软件
  • 做国外网站收款怎么收建筑人才招聘网站