从java bean配置初识spring 实现最简单的Helloworld
2016-06-03 16:11
555 查看
刚接触spring的朋友总觉得spring很高大上,是的,spring是很高大上,但是这个高大上值得是spring集成了很多的高大上功能,并不是指的能使用spring很高大上,相反,spring正是为了简化开发而出现的框架,那么,我们就从最简单的bean配置来初识spring。
新建java工程,新建congfig源文件夹,注意,一定是源文件夹,否则后续代码运行可能会出错。
新建包:com.cslc.com,先把完整的代码运行起来再解释。
包下面新建实体类:HelloWorld.java
早config下新建配置文件 applicationContext.xml
新建Main.java测试一下:
需要的jar:
spring-aop-4.0.0.RELEASE.jar
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
commons-logging-1.1.1.jar
以上应该是最简单的spring程序,只用spring管理一个HelloWorld的bean
其中主要的是配置文件的
代表配置了一个HelloWorld的bean, java中有两种方法可以获取这个对象
ctx.getBean(HelloWorld.class); 这种方式的好处是不用强制类型转化,但是当配置文件中配置了两个不同HelloWorld的时候,就会出现异常
ctx.getBean(“helloWorld”); 这种方式是最常用的方式,需要进行强制类型转化
在配置文件中配置bean有多种形式,但是当我们不用标签的时候,需要保证bean中有默认的无参的构造器,否则也会出现异常。
一般情况下,spring中的bean配置分为两种,其中最常用的是上面的配置形式:
用property 指定属性的值,一般指定的都是对象,并不是某一个属性的值,类似于:
第二种配置的方式就是构造器配置,但是很少用:
如果构造器中不指定index的话就会按个匹配,每一个参数对应构造器中的参数可以根据index 或者 type来区分。
简单的说,spring是一个容器,一般都说spring是一个轻量级的容器,这个轻或重不是指的是本省的代码量级,而是指的对程序的“侵入”多少,spring可以说做的基本完美,采用模块化的设计,使得程序可以按需加载,当我们需要个对象的时候,直接从容器中取就可以,而不用关心对象的创建销毁。
spring同样可以以轻的方式来管理实务、日志、数据源、融合的第三方框架等等,实现程序的解耦,简化开发工作。
spring整体采用IOC的方式,IOC值的是控制反转,概念很生涩,但是通俗的解释就是把对象实例化的控制权,由程序控制转为spring容器控制。 IOC是一种思想,在spring中通过DI技术实现。DI中文解释是依赖注入,原理和意思和IOC基本相同。
ICO/DI是spring的核心思想之一,另一个就是AOP,AOP的中文意思是面向切面编程,是spring能简化程序开发的一个重要原因。 通俗的讲,在程序开发中有很多与业务无关的代码,但是这些代码还是必要的,会出现在很多的地方,有人会有抽象出一个方法来引用,但是这种引用出现的次数有时候也是很大数量级别的,像日志,假设有一天你的老板不想用log4j的时候,传统方式需要改的代码将让人崩溃,而spring提供了面向切面编程这种优雅的方式解决这个问题。这些配置在配置文件中,在程序运行的过程中,spring会很优雅的将代码织入到连接点上,实现完整的业务。
新建java工程,新建congfig源文件夹,注意,一定是源文件夹,否则后续代码运行可能会出错。
新建包:com.cslc.com,先把完整的代码运行起来再解释。
包下面新建实体类:HelloWorld.java
package www.cslc.com; public class HelloWorld { private String name; public void setName(String name) { this.name = name; } @Override public String toString() { return "HelloWorld [name=" + name + "]"; } public void sayHello(){ System.out.println("hello "+name); } }
早config下新建配置文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"> <bean id="helloWorld" class="www.cslc.com.HelloWorld"> <property name="name" value="World"></property> </beans> </beans>
新建Main.java测试一下:
package www.cslc.com; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { public static void main(String[] args) { ApplicationContext ctx =new ClassPathXmlApplicationContext("applicationContext.xml"); HelloWorld helloWorld =ctx.getBean(HelloWorld.class); helloWorld.sayHello(); } }
需要的jar:
spring-aop-4.0.0.RELEASE.jar
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
commons-logging-1.1.1.jar
以上应该是最简单的spring程序,只用spring管理一个HelloWorld的bean
其中主要的是配置文件的
<bean id="helloWorld" class="www.cslc.com.HelloWorld"> <property name="name" value="World"></property> </beans>
代表配置了一个HelloWorld的bean, java中有两种方法可以获取这个对象
ctx.getBean(HelloWorld.class); 这种方式的好处是不用强制类型转化,但是当配置文件中配置了两个不同HelloWorld的时候,就会出现异常
ctx.getBean(“helloWorld”); 这种方式是最常用的方式,需要进行强制类型转化
在配置文件中配置bean有多种形式,但是当我们不用标签的时候,需要保证bean中有默认的无参的构造器,否则也会出现异常。
一般情况下,spring中的bean配置分为两种,其中最常用的是上面的配置形式:
<bean id="helloWorld" class="www.cslc.com.HelloWorld"> <property name="name" value="World"></property> </beans>
用property 指定属性的值,一般指定的都是对象,并不是某一个属性的值,类似于:
<bean id ="person" class="www.cslc.com.Person"> <property name="helloWorld" ref="helloWorld"></property> </bean>
第二种配置的方式就是构造器配置,但是很少用:
<bean id="car" class="www.cslc.com.Car"> <constructor-arg value="Audi"></constructor-arg> <constructor-arg value="china"></constructor-arg> <constructor-arg value="300000"></constructor-arg> </bean>
如果构造器中不指定index的话就会按个匹配,每一个参数对应构造器中的参数可以根据index 或者 type来区分。
简单的说,spring是一个容器,一般都说spring是一个轻量级的容器,这个轻或重不是指的是本省的代码量级,而是指的对程序的“侵入”多少,spring可以说做的基本完美,采用模块化的设计,使得程序可以按需加载,当我们需要个对象的时候,直接从容器中取就可以,而不用关心对象的创建销毁。
spring同样可以以轻的方式来管理实务、日志、数据源、融合的第三方框架等等,实现程序的解耦,简化开发工作。
spring整体采用IOC的方式,IOC值的是控制反转,概念很生涩,但是通俗的解释就是把对象实例化的控制权,由程序控制转为spring容器控制。 IOC是一种思想,在spring中通过DI技术实现。DI中文解释是依赖注入,原理和意思和IOC基本相同。
ICO/DI是spring的核心思想之一,另一个就是AOP,AOP的中文意思是面向切面编程,是spring能简化程序开发的一个重要原因。 通俗的讲,在程序开发中有很多与业务无关的代码,但是这些代码还是必要的,会出现在很多的地方,有人会有抽象出一个方法来引用,但是这种引用出现的次数有时候也是很大数量级别的,像日志,假设有一天你的老板不想用log4j的时候,传统方式需要改的代码将让人崩溃,而spring提供了面向切面编程这种优雅的方式解决这个问题。这些配置在配置文件中,在程序运行的过程中,spring会很优雅的将代码织入到连接点上,实现完整的业务。
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- C#学习进阶Hello World的17种写法代码分享
- 模拟Spring的简单实现
- Spring整合WebSocket应用示例(上)
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- springmvc 发送ajax出现中文乱码的解决方法汇总
- SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
- 详解Java的MyBatis框架和Spring框架的整合运用
- struts2 spring整合fieldError问题
- spring的jdbctemplate的crud的基类dao
- 读取spring配置文件的方法(spring读取资源文件)