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

免费com域名注册网站做网站的公司利润

免费com域名注册网站,做网站的公司利润,成年做羞羞的视频网站space,企业宣传文案模板目录 1. 什么是spring#xff0c;它能够做什么? 2. 什么是控制反转(或依赖注入) 3. AOP的关键概念 4. 示例 4.1 创建工程 4.2 pom文件 4.3 spring配置文件 4.4 示例代码 4.4.1 示例1 4.4.2 示例2 #xff08;abstract#xff0c;parent示例#xff09; 4.4.3 使… 目录 1. 什么是spring它能够做什么? 2. 什么是控制反转(或依赖注入) 3. AOP的关键概念 4. 示例 4.1 创建工程 4.2 pom文件 4.3 spring配置文件 4.4 示例代码 4.4.1 示例1 4.4.2 示例2 abstractparent示例 4.4.3 使用有参数构造方法创建javaBean 4.4.4 init-method指定bean的初始化方法 4.4.5 复杂属性的配置 5. 多配置文件 6. 与web集成 6.1 集成配置 6.2 获取配置的Bean 1. 什么是spring它能够做什么? Spring是一个开源框架它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言任何Java应用都可以从Spring中受益。 Spring项目出发点 目的提供一种贯穿始终的解决方面将各种专用框架整合成一个连贯的整体框架简化企业级应用的开发有点像粘合剂鼓励最佳实践 例如spring将“针对接口编程”的成本降到了最小非侵入性 应用对象尽量避免依赖框架IoC和AOP是避免依赖的关键技术统一配置 好的框架应该让应用配置灵活且统一易于测试 使单元测试尽可能简单可扩展 简单来说Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 2. 什么是控制反转(或依赖注入) 控制反转(IoCInversion of Control)IoC用白话来讲就是由容器控制程序之间的依赖关系而非传统实现中由程序代码直接操控。这也就是所谓“控制反转”的概念所在(依赖)控制权由应用代码中转到了外部容器控制权的转移是所谓反转。 IoC还有一个另外的名字“依赖注入 (DIDependency Injection)” 即由容器动态的将某种依赖关系注入到组件之中。 3. AOP的关键概念 连接点(Joinpoint)程序执行过程中明确的点如方法的调用或者异常的抛出.目标(Target)被通知(被代理)的对象通知(Advice)在某个特定的连接点上执行的动作同时Advice也是程序代码的具体实现例如一个实现日志记录的代码(通知有些书上也称为处理)代理(Proxy)将通知应用到目标对象后创建的对象(代理目标通知),请注意只有代理对象才有AOP功能而AOP的代码是写在通知的方法里面的切入点(Pointcut)多个连接点的集合定义了通知应该应用到那些连接点。(也将Pointcut理解成一个条件 此条件决定了容器在什么情况下将通知和目标组合成代理返回给外部程序)适配器(Advisor)适配器通知(Advice)切入点(Pointcut) 4. 示例 4.1 创建工程 创建一个web工程并转换为web3.1 详细步骤可参见“maven”课件 4.2 pom文件 依赖配置如下 propertieshibernate.version5.2.12.Final/hibernate.versionmysql.driver.version5.1.44/mysql.driver.versionspring.version5.2.6.RELEASE/spring.versionstruts2.version2.5.13/struts2.versionslf4j.version1.7.7/slf4j.versionlog4j.version2.9.1/log4j.versiondisruptor.version3.2.0/disruptor.versionjunit.version4.12/junit.versionservlet.version4.0.1/servlet.versionjstl.version1.2/jstl.versionstandard.version1.1.2/standard.versiontomcat-jsp-api.version8.5.20/tomcat-jsp-api.version/propertiesdependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependency!-- spring 相关 --dependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-orm/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-aop/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-aspects/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-beans/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion${spring.version}/version/dependency!-- 数据库驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion${mysql.driver.version}/version/dependency!--4. log配置Log4j2 Slf4j --!-- slf4j核心包 --dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion${slf4j.version}/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdjcl-over-slf4j/artifactIdversion${slf4j.version}/versionscoperuntime/scope/dependency!--用于与slf4j保持桥接 --dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-slf4j-impl/artifactIdversion${log4j.version}/versionexclusionsexclusionartifactIdslf4j-api/artifactIdgroupIdorg.slf4j/groupId/exclusion/exclusions/dependency!--核心log4j2jar包 --dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-api/artifactIdversion${log4j.version}/version/dependencydependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-core/artifactIdversion${log4j.version}/version/dependency!--web工程需要包含log4j-web非web工程不需要 --dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-web/artifactIdversion${log4j.version}/versionscoperuntime/scope/dependency!--需要使用log4j2的AsyncLogger需要包含disruptor --dependencygroupIdcom.lmax/groupIdartifactIddisruptor/artifactIdversion${disruptor.version}/version/dependency!--5. other --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion${junit.version}/versionscopetest/scope/dependencydependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion${servlet.version}/versionscopeprovided/scope/dependency!--6. jstl --dependencygroupIdjavax.servlet.jsp.jstl/groupIdartifactIdjstl/artifactIdversion${jstl.version}/version/dependencydependencygroupIdtaglibs/groupIdartifactIdstandard/artifactIdversion${standard.version}/version/dependency!-- 7. jsp自定义标签依赖 (必须与tomcat的版本一致) --dependencygroupIdorg.apache.tomcat/groupIdartifactIdtomcat-jsp-api/artifactIdversion${tomcat-jsp-api.version}/versionscopeprovided/scope/dependency/dependencies 注 该依赖配置不仅包含了spring同时也包含了hibernatestrutsmysql驱动等。 4.3 spring配置文件 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:aophttp://www.springframework.org/schema/aopxmlns:contexthttp://www.springframework.org/schema/context xmlns:txhttp://www.springframework.org/schema/txxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd/beans 4.4 示例代码 4.4.1 示例1 1 Student public class Student {private String name;public String getName() {return name;}public void setName(String name) {this.name name;}Overridepublic String toString() {return Demo [name name ];}} 2 spring.xml 配置文件 bean iddemo classorg.lisen.springdemo.model.Demoproperty namenamevalue张三/value/property/bean 配置文件说明 id在容器中查找Bean的id(唯一、且不能以/开头)classbean的完整类名name在容器中查找Bean的名字(唯一、允许以/开头、允许多个值多个值之间用逗号或空格隔开)scope:(singleton|prototype)默认是singleton singleton: 单例模式, 在每个Spring IoC容器中一个bean定义对应一个对象实例 prototype 原型模式/多例模式, 一个bean定义对应多个对象实例parent指定一个父bean(必须要有继承关系才行)abstract: 将一个bean定义成抽象bean(抽象bean是不能实例化的),抽象类一定要定义成抽象bean,非抽象类也可以定义成抽象bean 注 在这里配置的name属性为简单的String属性可以直接使用value进行配置。另外可以直接使用value设置的如下 8基础数据String3个sql java.util.Date java.sql.Date java.sql.Time java.sql.Timestamp 3 通过Spring的ApplicationContext获取Bean public class SpringDemo {public static void main(String[] args) {ApplicationContext cxt new ClassPathXmlApplicationContext(spring.xml);Student demo (Student)cxt.getBean(demo);System.out.println(demo);}} 4.4.2 示例2 abstractparent示例 1 Person public class Student extends Person {private String name;public String getName() {return name;}public void setName(String name) {this.name name;}Overridepublic String toString() {return Demo [name name ];}} 2 Student public class Student extends Person {private String name;public String getName() {return name;}public void setName(String name) {this.name name;}Overridepublic String toString() {return Demo [name name ];}} 3 配置文件 bean idstudent classorg.lisen.springdemo.model.Student parentpersonproperty namenamevalue张三/value/property/beanbean idperson classorg.lisen.springdemo.model.Person abstracttrueproperty namephonevalue139751878778/value/property/bean 4 通过Spring的ApplicationContext获取Bean public class SpringDemo {public static void main(String[] args) {ApplicationContext cxt new ClassPathXmlApplicationContext(spring.xml);Student student (Student)cxt.getBean(student);System.out.println(student.getName());System.out.println(student.getPhone());}} 4.4.3 使用有参数构造方法创建javaBean constructor-arg 1 Worker public class Worker extends Person {private String workName;public Worker(String workName) {this.workName workName;}public String getWorkName() {return workName;}public void setWorkName(String workName) {this.workName workName;}} 2配置文件 bean idworker classorg.lisen.springdemo.model.Worker parentpersonconstructor-arg nameworkNamevalue王小/value/constructor-arg!-- 第二种方式constructor-arg index0value王小/value/constructor-arg--/bean 3 通过Spring的ApplicationContext获取Bean public class SpringDemo {public static void main(String[] args) {ApplicationContext cxt new ClassPathXmlApplicationContext(spring.xml);Student student (Student)cxt.getBean(student);System.out.println(student.getName());System.out.println(student.getPhone());//构造函数注入Worker worker (Worker)cxt.getBean(worker);System.out.println(worker.getWorkName());}} 4.4.4 init-method指定bean的初始化方法 修改上面的Student类加入一个init方法注意该方法不能有参数 public class Student extends Person {private String name;public String getName() {return name;}public void setName(String name) {this.name name;}Overridepublic String toString() {return Demo [name name ];}//init方法不能有参数public void init() {System.out.println(Student init ....);}} 2 修改Student类对应的配置文件 bean idstudent classorg.lisen.springdemo.model.Student parentperson init-methodinitproperty namenamevalue张三/value/property/bean 3 运行原来的测试用例会发生后台打印“Student init ....“表示init-method正常调用。 4.4.5 复杂属性的配置 1 JavaBean属性注入 bean idstudent classorg.lisen.springdemo.model.Student parentperson init-methodinitproperty namenamevalue张三/value/propertyproperty nameaddr refaddr//beanbean idaddr classorg.lisen.springdemo.model.Addrproperty namecityvalue长沙/value/property/bean java部分代码比较简单请根据配置文件自行完成。 2List或数组 声明属性 private int[] arr;private List list; 配置文件 property namelistlistvalue123/valuevalue456/valuevalue789/valuevalueasd/value/list/property 3Map private Map map; 配置文件 property namemapmapentry keyaa value123/entry keybb value456/entry keycc value789//map/property 4.Properties private Properties prop; 配置文件 property nameproppropsprop keyddqwer/propprop keyeetyu/propprop keyffiop/prop/props/property 5. 多配置文件 系统一般会被分成多个模块可以为每个模块配置一个配置文件便于管理在版本控制软件中也可以减少冲突 spring-a.xml 假设为a模块的配置文件 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:aophttp://www.springframework.org/schema/aopxmlns:contexthttp://www.springframework.org/schema/context xmlns:txhttp://www.springframework.org/schema/txxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsdbean idstudent classorg.lisen.springdemo.model.Student parentperson init-methodinitproperty namenamevalue张三/value/propertyproperty nameaddr refaddr//beanbean idaddr classorg.lisen.springdemo.model.Addrproperty namecityvalue长沙/value/property/beanbean idperson classorg.lisen.springdemo.model.Person abstracttrueproperty namephonevalue139751878778/value/property/beanbean idworker classorg.lisen.springdemo.model.Worker parentpersonconstructor-arg nameworkNamevalue王小/value/constructor-arg!-- 第二种方式constructor-arg index0value王小/value/constructor-arg--/bean/beans spring.xml 为总的spring配置文件 在总配置文件中导入其他模块即可。 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:aophttp://www.springframework.org/schema/aopxmlns:contexthttp://www.springframework.org/schema/context xmlns:txhttp://www.springframework.org/schema/txxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsdimport resourcespring-a.xml//beans 6. 与web集成 6.1 集成配置 在web.xml中加入如下配置 context-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:spring.xml/param-value/context-paramlistenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class/listener 6.2 获取配置的Bean /*** 用于简化Bean的获取.* * ApplicationContextAware接口* 实现了这个接口的bean当spring容器初始化的时候会自动的将ApplicationContext注入进来* * author Administrator*/ public final class SpringBeanUtil implements ApplicationContextAware {private SpringBeanUtil() {}private static ApplicationContext cxt;Overridepublic void setApplicationContext(ApplicationContext appContext) throws BeansException {cxt appContext;}/*** 根据Bean的id来获取Bean对象* param id 配置文件中的bean的id属性* return Object*/SuppressWarnings(unchecked)public static T T getBean(String id) {return (T)cxt.getBean(id);}} 配置文件 bean classorg.lisen.springdemo.util.SpringBeanUtil/
http://www.w-s-a.com/news/541710/

相关文章:

  • 可以做游戏的网站有哪些客户关系管理系统的主要功能
  • 整人关不掉的网站怎么做广东省网站免备案表
  • 网站设计素材edu域名网站
  • 中山学校的网站建设wordpress文章图片显示不出
  • 兰溪城市建设规划网站网站联盟的基本流程
  • 免费推广网站注册入口小说阅读网站怎么建设
  • 新网站怎么做网络推广怎么做企业网站排名
  • jsp商业网站开发网站链接如何做二维码
  • 江苏高校品牌专业建设网站怎么制作网站搜索窗口
  • 北京app建设 网站开发公司织梦网站seo
  • 大学网站 作风建设专题汽车配件外贸出口公司
  • 东莞做网站系统购物网站建设精英
  • 建设vip网站相关视频网站营销建设公司
  • 微站直播平台杭州seo按天计费
  • seo 新旧网站 两个域名福州设计网站建设
  • 如何做网站客户端如何做网络营销网站
  • 苏州网站建设制度打鱼网站建设
  • 瓜子二手车直卖网上海小红书seo
  • 天津中小企业网站制作珠海做网站的
  • 网站排名影响因素最牛的科技网站建设
  • 长春网站建设公司怎么样电商网站建设与开发期末考试
  • 品牌网站建设搭建国内外网站建设
  • 辽宁人社app一直更新整站seo定制
  • 兰州网站建设论坛装修品牌
  • 云南省城乡住房与建设厅网站用什么网站可以做电子书
  • 自己电脑怎么做网站服务器吗0基础如何做网站
  • 做网站的股哥网络整合营销方案策划
  • 网站你懂我意思正能量晚上唯品会网站开发费用
  • 网站认证金额怎么做分录网页无法访问是怎么回事
  • 樟木头建网站的wordpress自适应吸附菜单