Spring学习笔记:第二章 Spring中IoC的入门实例

发布时间:2010-01-28 高级 BEAN 框架 XML SPRING IOC

第二章 Spring中IoC的入门实例
Spring的模块化是很强的,各个功能模块都是独立的,我们可以选择的使用。这一章先从Spring的IoC开始。所谓IoC就是一个用XML来定义生成对象的模式,我们看看如果来使用的。

1、数据模型。
1、如下图所示有三个类,Human(人类)是接口,Chinese(中国人)是一个子类,American(美国人)是另外一个子类。


源代码如下:

package cn.com.chengang.spring;

public interface Human {

void eat();

void walk();

}


package cn.com.chengang.spring;

public class Chinese implements Human {

/* (非 Javadoc)

* @see cn.com.chengang.spring.Human#eat()

*/

public void eat() {

System.out.println("中国人对吃很有一套");

}


/* (非 Javadoc)

* @see cn.com.chengang.spring.Human#walk()

*/

public void walk() {

System.out.println("中国人行如飞");

}

}


package cn.com.chengang.spring;

public class American implements Human {

/* (非 Javadoc)

* @see cn.com.chengang.spring.Human#eat()

*/

public void eat() {

System.out.println("美国人主要以面包为主");

}


/* (非 Javadoc)

* @see cn.com.chengang.spring.Human#walk()

*/

public void walk() {

System.out.println("美国人以车代步,有四肢退化的趋势");

}

}


2、对以上对象采用工厂模式的用法如下
创建一个工厂类Factory,如下。这个工厂类里定义了两个字符串常量,所标识不同的人种。getHuman方法根据传入参数的字串,来判断要生成什么样的人种。

package cn.com.chengang.spring;

public class Factory {

public final static String CHINESE = "Chinese";

public final static String AMERICAN = "American";


public Human getHuman(String ethnic) {

if (ethnic.equals(CHINESE))

return new Chinese();

else if (ethnic.equals(AMERICAN))

return new American();

else

throw new IllegalArgumentException("参数(人种)错误");

}

}


下面是一个测试的程序,使用工厂方法来得到了不同的“人种对象”,并执行相应的方法。

package cn.com.chengang.spring;

public class ClientTest {

public static void main(String[] args) {

Human human = null;

human = new Factory().getHuman(Factory.CHINESE);

human.eat();

human.walk();

human = new Factory().getHuman(Factory.AMERICAN);

human.eat();

human.walk();

}

}


控制台的打印结果如下:


3、采用Spring的IoC的用法如下:
1、在项目根目录下创建一个bean.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean id="Chinese" class="cn.com.chengang.spring.Chinese"/>

<bean id="American" class="cn.com.chengang.spring.American"/>

</beans>

bean.xml的位置如下图,注意不要看花眼把它看成是lib目录下的了,它是在myspring目录下的。


2、修改ClientTest程序如下:

package cn.com.chengang.spring;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext;

public class ClientTest {

public final static String CHINESE = "Chinese";

public final static String AMERICAN = "American";


public static void main(String[] args) {

// Human human = null;

// human = new Factory().getHuman(Factory.CHINESE);

// human.eat();

// human.walk();

// human = new Factory().getHuman(Factory.AMERICAN);

// human.eat();

// human.walk();


ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml");

Human human = null;

human = (Human) ctx.getBean(CHINESE);

human.eat();

human.walk();

human = (Human) ctx.getBean(AMERICAN);

human.eat();

human.walk();

}

}

从这个程序可以看到,ctx就相当于原来的Factory工厂,原来的Factory就可以删除掉了。然后又把Factory里的两个常量移到了ClientTest类里,整个程序结构基本一样。

再回头看原来的bean.xml文件的这一句

<bean id="Chinese" class="cn.com.chengang.spring.Chinese"/>

id就是ctx.getBean的参数值,一个字符串。class就是一个类(包名+类名)。然后在ClientTest类里获得Chinese对象就是这么一句

human = (Human) ctx.getBean(CHINESE);

因为getBean方法返回的是Object类型,所以前面要加一个类型转换。


4、总结
(1)也许有人说,IoC和工厂模式不是一样的作用吗,用IoC好象还麻烦一点。

举个例子,如果用户需求发生变化,要把Chinese类修改一下。那么前一种工厂模式,就要更改Factory类的方法,并且重新编译布署。而IoC只需要将class属性改变一下,并且由于IoC利用了Java反射机制,这些对象是动态生成的,这时我们就可以热插拨Chinese对象(不必把原程序停止下来重新编译布署)


(2)也许有人说,即然IoC这么好,那么我把系统所有对象都用IoC方式来生成。

注意,IoC的灵活性是有代价的:设置步骤麻烦、生成对象的方式不直观、反射比正常生成对象在效率上慢一点。因此使用IoC要看有没有必要,我认为比较通用的判断方式是:用到工厂模式的地方都可以考虑用IoC模式。


(3)在上面的IoC的方式里,还有一些可以变化的地方。比如,bean.xml不一定要放在项目录下,也可以放在其他地方,比如cn.com.chengang.spring包里。不过在使用时也要变化一下,如下所示:

new FileSystemXmlApplicationContext("src/cn/com/chengang/spring/bean.xml");

另外,bean.xml也可以改成其他名字。这样我们在系统中就可以分门别类的设置不同的bean.xml。


(4)关于IoC的低侵入性。

什么是低侵入性?如果你用过Struts或EJB就会发现,要继承一些接口或类,才能利用它们的框架开发。这样,系统就被绑定在Struts、EJB上了,对系统的可移植性产生不利的影响。如果代码中很少涉及某一个框架的代码,那么这个框架就可以称做是一个低侵入性的框架。

Spring的侵入性很低,Humen.java、Chinese.java等几个类都不必继承什么接口或类。但在ClientTest里还是有一些Spring的影子:FileSystemXmlApplicationContext类和ctx.getBean方式等。

现在,低侵入性似乎也成了判定一个框架的实现技术好坏的标准之一。


(5)关于bean.xml的用法

bean.xml的用法还有很多,其中内容是相当丰富的。假设Chinese类里有一个humenName属性(姓名),那么原的bean.xml修改如下。此后生成Chinese对象时,“陈刚”这个值将自动设置到Chinese类的humenName属性中。而且由于singleton为true这时生成Chinese对象将采用单例模式,系统仅存在一个Chinese对象实例。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean id="Chinese" class="cn.com.chengang.spring.Chinese" singleton="true">

<property name="humenName">

<value>陈刚</value>

</property>

</bean>

<bean id="American" class="cn.com.chengang.spring.American"/>

</beans>


关于bean.xml的其它用法,不再详细介绍了,大家自己拿Spring的文档一看就明白了。

更多相关推荐


Android 读取excel(支持 xls)和 xml

发布时间:2022-11-22 EXCEL ANDROID XML
一、使用jxl读取excel文件1.build.gradle的dependencies中加入 implementation'net.sourceforge.jexcelapi:jxl:2.6.12'2.将xls文件复制到assets文件夹3.读取文件内容:publicstaticList&lt;ContentBean&gt;readExcelToAssets(Contextcontext){Lis...

SpringBoot 接口层统一加密解密

发布时间:2022-11-23 SPRING BOOT SERVLET JAVA SPRING 后端
1.介绍在我们日常的Java开发中,免不了和其他系统的业务交互,或者微服务之间的接口调用如果我们想保证数据传输的安全,对接口出参加密,入参解密。但是不想写重复代码,我们可以提供一个通用starter,提供通用加密解密功能2.前置知识2.1hutool-crypto加密解密工具hutool-crypto提供了很多加密解密工具,包括对称加密,非对称加密,摘要加密等等,这不做详细介绍。2.2reques...

xml转txt

发布时间:2022-11-07 深度学习 数据集 XML PYTHON
xml文件转txt下面为代码,至于要修改两个路径:xml文件地址和创建保存txt文件的地址。importosimportxml.etree.ElementTreeasET#xml文件存放目录(修改成自己的文件名)input_dir=r'G:\XmlToTxt-master\VOC\Annotations'#输出txt文件目录(自己创建的文件夹)out_dir=r'G:\\XmlToTxt-mast...

TXT转XML

发布时间:2022-10-17 深度学习 LINUX XML PYTHON
txt文件转xml文件importosimportcv2deftxt_to_xml(txt_path,img_path,xml_path):  #1.字典对标签中的类别进行转换  dict={'0':"northern",      '1':"rust"      }  #2.找到txt标签文件夹  files=os.listdir(txt_path)  #用于存储"老图"  pre_img_na...

Hibernate中的inverse和cascade

发布时间:2009-02-27 DAO SQL XML .NET HIBERNATE
首先引用另一个blog的说法:1.cascade="..."?cascade属性并不是多对多关系一定要用的,有了它只是让我们在插入或删除对像时更方便一些,只要在cascade的[b]源头(主控方?)[/b]上插入或是删除,所有cascade的关系就会被自己动的插入或是删除。便是为了能正确的cascade,unsaved-value是个很重要的属性。Hibernate通过这个属性来判断一个对象应该s...

基于Visual Studio2010讲解LINQ读出数据库数据生成XML

发布时间:2010-05-20 数据结构 LINQ 编程 SQL XML
LINQtoXML是一种启用了LINQ的内存XML编程接口,使用它,可以在.NETFramework编程语言中处理XML。LINQtoXML最重要的优势是它与Language-IntegratedQuery(LINQ)的集成。由于实现了这一集成,因此,可以对内存XML文档编写查询,以检索元素和属性的集合。LINQtoXML的查询功能在功能上(尽管不是在语法上)与XPath和XQuery具有可比性。...

Spring面试题

发布时间:2021-09-25 面试必备知识 JAVA SPRING
1.说说你对Spring的理解Spring是一个轻量级的java开发框架,旨在提高开发人员的开发效率和系统的可维护性主要包括springcore、springbeans、springcontext、springjdbc、springaop、springWeb、springtest等模块核心就是IOC和AOP,即控制反转和面向切面编程Spring的优点简化开发,方便解耦;支持AOP编程和声明式事务;...

Spring优点大集合

发布时间:2022-11-02 SPRING
转自:Spring有哪些优点呢?Spring简介:  Spring是Java开发者必备的框架,那么她有哪些优点,你知道吗?下文笔者讲述Spring框架给我们带来的优点简介说明,如下所示:方便解耦,简化开发Spring我们可以看作一个大的Bean工厂, 我们可以将所有对象创建和依赖关系维护,交给Spring管理AOP编程的支持Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等...

Spring体系架构

发布时间:2022-10-23 JAVA 架构 SPRING
什么是spring框架Spring框架是一个开放源代码的J2EE应用程序框架,IOC(控制反转)和AOP(面向切面编程)为内核,通俗讲Spring就是一个容器,用来存放同类内容的集合就叫做容器,在Spring构成应用程序主干并由SpringIoC容器管理的对象称为bean。bean是一个由SpringIoC容器实例化、组装和管理的对象,便于程序的解耦、开发方式的简化、支持AOP编程、支持声明式事务...

hibernate.cfg.xml文件详解(annotation 配置)

发布时间:2010-08-26 MOBILE F# XML JPA HIBERNATE
一、环境搭建和基本映射 1)添加Annotation包:   hibernate-annotations.jar,ejb3-persistence.jar,hibernate-commons-annotations.jar 2)在实体类中尽量使用JPA的标准注解来进行对象关系映射。注解可以添加在属性上,也可以添加在getXxx()方法之上。   a)@Entity映射一个实体类      @Tab...

Hibernate annotation 详解

发布时间:2010-03-05 HIBERNATE BEAN
1.级联CASCADE属性的意义:只有“关系标记”才有cascade属性:OneToOne,OneToMany,ManyToOne,ManyToMany.级联指的是当主控方执行操作时,关联对象(被动方)是否同步执行同一操作。一个操作因级联cascade可能触发多个关联操作。前一个操作叫“主控操作”,后一个操作叫“关联操作”。有的时候javax.persistence.CascadeType属性不好...

彻底理解浏览器的Http缓存机制

发布时间:2020-07-30 HTTP LINUX PYTHON JAVA SPRING
作者丨saucxshttps://www.mwcxs.top/page/565.html概述浏览器的缓存机制也就是我们说的HTTP缓存机制,其机制是根据HTTP报文的缓存标识进行的,所以在分析浏览器缓存机制之前,我们先使用图文简单介绍一下HTTP报文,HTTP报文分为两种:HTTP请求(Request)报文,报文格式为:请求行–HTTP头(通用信息头,请求头,实体头)–请求报文主体(只有POST才...

MyBites的使用,连接xml

发布时间:2017-08-31 数据库 MYBITES XML SERVLET JAVA
MyBites主要是对数据的操作,操作数据库首先的写接口对其进行操作,首先新建一个Servlet,复写doGet,doPost方法,在doPost中添加数据,首先创建实体(这个就不写了),给实体添加数据MyBitesStudio.javaStringname=request.getParameter("users");//获得用户输入的数据List&lt;UserBean&gt;list=user...

Swagger3.0 天天刷屏,真的香吗?

发布时间:2021-07-16 NDK SPRING BOOT JAVA SPRING WEB
目录前言官方文档如何说?SpringBoot版本说明添加依赖springfox-boot-starter做了什么?撸起袖子就是干?定制一个基本的文档示例文档如何分组?如何添加授权信息?如何携带公共的请求参数?粗略是一个BUG总结前言最近频繁被Swagger3.0刷屏,官方表示这是一个突破性的变更,有很多的亮点,我还真不太相信,今天来带大家尝尝鲜,看看这碗汤到底鲜不鲜....官方文档如何说?该项目开...

dubbo之奇怪的问题---No such application config Please add dubbo application name=

发布时间:2022-09-02 DUBBO ECLIPSE JAVA-ZOOKEEPER JAVA SPRING
今天调dubbo我是客户端于是写好了代码测试就发现了这个错误项目是springboot+dubboxml配置搜了好多地方没有一个正确的答案github好像有人提问也没有人解答至今我也不知道为什么只知个大概和我的解决办法仅供参考dubbo读取配置文件首先会读xml然后会去找dubbo.properties这个错误的意思是没有读取到配置文件中dubbo:applicationname=这个属性跟踪了源...

spring-aop 处理全局异常,实现自定义返回提示。简单去掉controller中的try-catch

发布时间:2022-11-24 JAVA APRING-AOP SPRING 后端
目录丑陋的try-catchaop中try-catch丑陋的try-catch最近在工作中使用@RestControllerAdvice做了全局异常处理,但是发现spring就算能捕获到所有的异常,我们还是无法友好的提示用户。毕竟我们每个接口的错误提示都不相同,比如:保存用户失败,查询用户失败等。我们需要对每个接口 try{}catch(){} 才能在错误时进行提示。如图这样的代码看起来非常不友好...

数据预处理返回信息配置

发布时间:2022-05-23 JAVA 前端 SPRING
使用@Validated有时不返回前端错误信息的配置处理importlombok.extern.slf4j.Slf4j;importorg.springframework.http.HttpStatus;importorg.springframework.web.bind.MethodArgumentNotValidException;importorg.springframework.web.b...

XmlDocument 操作 xml

发布时间:2017-02-22 XMLDOCUMENT XML
使用XmlReader遍历文档是很方便的,使用XmlWriter生成一个新的XML文档也很容易.但是对现有的XML进行修改,例如添加一个元素或修改一个属性值,就比较麻烦了.此时,可以使用XmlDocument对象,通过调用DOM方法对文档进行修改,然后再保存.由于DOM已经进行了标准化,很多语言都对他进行了支持,比如JS,因此这里的很多方法与JS中都是一致的,比如GetElementByID(),...

Java后台框架篇--Spring之AspectJ AOP

发布时间:2017-09-30 开发--2.后台 SPRING
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/49744721这里我们用一个完整的例子演示springaspectjaop的使用。首先新建一个maven项目,在项目的pom.xml中添加springaop相关的依赖项:[html] viewplain copy&lt;project xmlns="http://maven.apac...

spring项目中使用Aspectj

发布时间:2012-05-15 JAR CMD TECHNOLOGYLOG SWING JAVA SPRING
1.到http://www.eclipse.org/aspectj/downloads.php下载一个aspectj的安装jar包(选择一个最新的稳定发布版)。2.本地cmd窗口用java-jar命令编译aspectjt-&lt;version&gt;.jar包,出现一个swing程序,按照GUI提示完成Aspectj的安装。3.使用时,在项目引入&lt;aspectj_install_direc...

Struts中的javascript验证.

发布时间:2007-04-11 HTML BEAN JAVASCRIPT STRUTS JAVA ACTION
Struts中的javascript验证.1、login.jsp的页面&lt;%@pagelanguage="java"pageEncoding="ISO-8859-1"%&gt;&lt;%@tagliburi="http://jakarta.apache.org/struts/tags-bean"prefix="bean"%&gt;&lt;%@tagliburi="http://jakarta....

Spring~五种存储Bean对象的类注解、方法注解(@Bean)以及Bean对象的获取

发布时间:2022-11-21 JAVA 框架学习 SPRING 后端
目录五种存储Bean对象的类注解​@Controller @Service@Repository @Component@Configuration方法注解@Bean使用@Bean注解的常见问题当一个类型有多个实例对象,使用类型获取就会报错在容器中找不到Bean,不论通过什么方式来获取Bean对象都会报错五种存储Bean对象的类注解五种类注解分别为@Controller、@Service、@Repo...

Spring中Bean的作用域和生命周期

发布时间:2022-11-22 JAVA 框架学习 SPRING 后端
目录Bean的作用域singleton prototyperequestsessionapplicationwebsocket单例作用域和全局作用域的区别Bean的生命周期Bean的作用域Bean的作用域是指Bean在Spring整个框架中的某种行为模式,比如singleton单例作用域,就表示Bean在整个Spring中只有一份,它是全局共享的,当其他人修改了这个值后,另一个人读取到的就是被修改...

Java 对象拷贝原理剖析及最佳实践

发布时间:2022-11-25 开发语言 JAVA SPRING
1前言对象拷贝,是我们在开发过程中,绕不开的过程,既存在于Po、Dto、Do、Vo各个表现层数据的转换,也存在于系统交互如序列化、反序列化。Java对象拷贝分为深拷贝和浅拷贝,目前常用的属性拷贝工具,包括Apache的BeanUtils、Spring的BeanUtils、Cglib的BeanCopier、mapstruct都是浅拷贝。1.1深拷贝深拷贝:对基本数据类型进行值传递,对引用数据类型,创...

关于Spring事务tx:annotation-driven/的理解(Controller可以使用@Transactional)

发布时间:2019-12-30 SPRING注解事务 SPRING
    在使用SpringMvc的时候,配置文件中我们经常看到 annotation-driven这样的注解,其含义就是支持注解,一般根据前缀tx、mvc等也能很直白的理解出来分别的作用。&lt;tx:annotation-driven/&gt;就是支持事务注解的(@Transactional)、&lt;mvc:annotation-driven&gt;就是支持mvc注解的,说白了就是使Contr...

Spring事务失效常见的八种场景

发布时间:2022-11-20 JAVA SPRING 后端
1.方法自调用第一类,@Transactional注解未生效情况,其实这种并不是事物失效,仅仅是注解失效,注解写了更没写一样解决方案:将被调用的方法拆到单独的bean中,让切面起作用自己注入自己获取代理类@EnableAspectJAutoProxy(exposeProxy=true)+UserServiceuserService=(UserService)AopContext.currentPr...

我画了42张图爆肝Nacos源码,跟着看一遍保证大家都学废了!

发布时间:2022-11-17 SPRING CLOUD SPRING BOOT 微服务 JAVA SPRING
「 关注“石杉的架构笔记”,大厂架构经验倾囊相授 」文章来源:【公众号:CodeFox】前言大家好,这篇文章跟大家聊下SpringCloudAlibaba中的微服务组件Nacos。Nacos既能做注册中心,又能做配置中心,这篇文章主要来聊下做配置中心时client端的一些设计,主要从源码层面进行分析,相信看完这篇文章你对Nacosclient端的工作原理应该有比较深刻的了解。SpringCloud...

需求分析设计实现

发布时间:2010-09-14 架构设计 框架 程序开发
 前几天,看了白鸦的“一匹更快的马”,感受最深的一点就是:很多时候经验就给自己就地画了一个圈,限制了自己的思维方式,扼杀了创新的萌芽。从开发者,到架构设计实现,到架构设计,丰富的经验积累是每个程序员的财富,但是如何使用好经验,在什么时候用经验,正式这笔财富价值最大化,再次积累的关键。  就程序开发三个方面简单说一下经验使用的想法:  需求分析:站在用户的角度看问题,做一个普通人(抛开技术经验)  ...

org.springframework.security.access.AccessDeniedException: 不允许访问

发布时间:2022-10-22 SPRING SECURITY 前端 SPRING
目录1、错误现象:2、错误场景和条件:3、错误原因分析:4、错误解决办法:1、错误现象:测试springsecurity的权限校验功能时,提示:【服务器端错误,请联系系统管理员!】。这个异常很不友好。查看日志,出现如下错误信息:org.springframework.security.access.AccessDeniedException:不允许访问完整的错误如下:2022-10-2210:50...

edittext小结

发布时间:2011-06-08 ANDROID LAYOUT 输入法 XML 扩展
通过EditText的layoutxml文件中的相关属性来实现: 1.密码框属性android:password="true" 这条可以让EditText显示的内容自动为星号,输入时内容会在1秒内变成*字样。 2.纯数字android:numeric="true"这条可以让输入法自动变为数字输入键盘,同时仅允许0-9的数字输入 3.仅允许android:capitalize="cwj1987"这样...

MyBatis动态代理

发布时间:2020-10-09 SPRING
先看一个MyBatis的使用demo@ResourceSqlSessionFactorysqlSessionFactory;@RequestMapping(value="/query",method=RequestMethod.GET)publicStringquery(@RequestParam("name")Stringname){//获取sqlSessionSqlSessionsqlSess...

Spring依赖注入源码解析(上)

发布时间:2022-11-25 MYBATIS JAVA SPRING
前言在看@Autowired注解源码之前,需要先了解一下现有的注入方式,才能更好的理解spring底层实现本篇文章主要以**@Autowired寻找注入点、注入点进行注入**重点解析一、Spring中到底有几种依赖注入的方式?分两种:手动注入自动注入1、手动注入在XML中定义Bean时,就是手动注入,因为是程序员手动给某个属性指定了值。1.1、set方法进行注入&lt;beanname="user...

Maven:解决IDEA无法下载源码

发布时间:2022-11-14 JAVA SPRING CLOUD SPRING MAVEN
Maven:解决IDEA无法下载源码IDEA提示报错,无法下载源代码解决办法:下载全部依赖进入相应模块的目录执行该命令,可以下载该模块下的全部依赖mvndependency:resolve-Dclassifier=sources...

添加用户自定义消息

发布时间:2007-08-18 VC编译错误集合 测试 框架 USER NULL
说明:以下用一个自创的对话框类(MyMessageDlg)向视图类(MessageTestView)发送自定义消息为例,说明这两种不同方法的自定义消息的总结:消息传递的方法一:使用ON_MESSAGE使用ON_MESSAGE响应消息,必须配合定义消息#defineWM_MY_MESSAGE(WM_USER+100)对于发送消息者-MyMessageDlg,在其MyMessageDlg.h中,定义#...

SpringMvc引入依赖时版本问题

发布时间:2022-11-23 MYBATIS JAVA SPRING
&lt;?xmlversion="1.0"encoding="UTF-8"?&gt;&lt;projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0...

蝴蝶谷遥想

发布时间:2007-05-06 音乐 框架
汽车停在一加油站前,旅客们纷纷下车,站在加油站旁定眼细看,蝴蝶谷加油站几个字映入眼帘。加油站从头到尾不到二百米。车辆井然有序的在进出,小商贩们在吆喝着招待客户,一排排汉餐民餐的店小二们正在起劲的向我们招手。这是一个极普通的加油站,是南天山脚下丝绸古道上的一个驿站.  放眼望去,四周满眼的戈壁鹅卵石,大山耸立在路边默然地俯瞰着我、我们和这里的一切。天山胴体上铢红色的石块组成了一个庞大的向东、向西延伸...

HTML 标签

发布时间:2008-01-02 浏览器 HTML CSS 框架 XHTML 文档
DefinitionandUsage用法The&lt;!DOCTYPE&gt;declarationistheveryfirstthinginyourdocument,beforethe&lt;html&gt;tag.ThistagtellsthebrowserwhichHTMLorXHTMLspecificationthedocumentuses.&lt;!DOCTYPE&gt;声明是在你文档中...

Java 中隐藏的 5 个秘密

发布时间:2022-11-23 JAVA JVM SPRING
随着编程语言的发展,隐藏的功能不可避免地开始出现,而创始人从未打算使用的结构开始逐渐流行起来。其中一些功能以习语的形式出现并成为语言中公认的用语,而另一些则成为反模式并被归入语言社区的黑暗角落。在本文中,我们将了解五个经常被大量Java开发人员(有些人有充分理由)忽视的Java秘密。对于每个描述,我们将查看使每个功能存在的用例和基本原理,并查看一些可能适合使用这些功能的示例。读者应该注意到,并非所...

Spring quartz设置定时任务

发布时间:2016-07-08 SPRING
1.将quartz类加入Spring管理&lt;beanid="schedulerFactoryBean"class="org.springframework.scheduling.quartz.SchedulerFactoryBean"destroy-method="stop"&gt;&lt;/bean&gt;2.将定时执行类加入Spring管理&lt;beanid="taskTime"clas...

使用 XML Schema 定义元素的基本知识

发布时间:2005-09-25 嵌入式 IBM 设计模式 编程 XML
学习使用XMLSchema代替DTD定义XML文档结构级别:中级&lt;name&gt;AshvinRadiya&lt;/name&gt;,总裁兼首席技术官,AvantSoft,Inc.&lt;name&gt;VibhaDixit&lt;/name&gt;,首席执行官,AvantSoft,Inc.2003年12月新的XMLSchema系统即将成为W3C推荐标准,目的是为了克服DTD的局限性(请参阅...

java毕业生设计学校食堂订餐管理计算机源码+系统+mysql+调试部署+lw

发布时间:2022-09-17 JAVA 开发语言 SPRING
java毕业生设计学校食堂订餐管理计算机源码+系统+mysql+调试部署+lwjava毕业生设计学校食堂订餐管理计算机源码+系统+mysql+调试部署+lw本源码技术栈:项目架构:B/S架构开发语言:Java语言开发软件:ideaeclipse前端技术:Layui、HTML、CSS、JS、JQuery等技术后端技术:JAVA运行环境:Win10、JDK1.8数据库:MySQL5.7/8.0源码地址...

哈萨克石油明日抵达中国阿拉山口

发布时间:2006-05-04 能源 生活 框架 零下六渡
2006年04月30日 07:13 北京晚报 中哈石油管道西起哈萨克斯坦里海(世界第三大油气资源富集区)岸边的阿特劳,东至中国新疆阿拉山口,全长3000多公里。明日,哈萨克斯坦的石油经过约1800公里的长途跋涉,将抵达中国的阿拉山口。据悉,中国境内的阿拉山口到独山子的原油管道已经具备了接油的条件。专家称,这意味着哈萨克斯坦的石油将从5月份开始正式对华供油,同时标志着中国境外陆路管线供油时代的开启。...

Spring-BeanPostProcessor

发布时间:2022-11-13 JAVA SPRING
BeanPostProcessorBeanPostProcessor是spring的bean增强器,也就是说我们交给spring管理的那些类,在创建之后还可以对他进行增强,那是怎么用的呢,我们这篇文章就来看看BeanPostProcessor源码publicinterfaceBeanPostProcessor{//前置处理(bean初始化方法前)@NullabledefaultObjectpost...