关于java中Spring框架一些简单的东西
来源:互联网 发布:mac用office 编辑:程序博客网 时间:2024/05/18 18:54
开始学习java中的一个Spring框架,其作用是用来简化程序的开发
spring其本质是管理软件中的对象,对其进行创建对象,维护对象之间的关系,强调低耦合性
spring中任何的java类和javaBean都会被当做bean来处理,这些bean通过容器来进行管理和应用,通过ioc和aop机制来简化bean对象的创建和bean对象之间的解耦
spring容器的实例化,创建对象
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");加载工程classPath下就是这样配置的。
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:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd"></beans>
需要在此文件中添加bean定义
<bean id="标识符" class=“bean类型”>,然后在创建ApplicationContext后,就可以通过getBean()获取对象
bean对象的实例化一般都是用构造器来进行实例化:如下
<bean id="pe" class="com.su.bean.People" ></bean>此对象,class里面的内容是自建的一个包名+包下class文件名
id可以认为是这个class属性的一个别名,会根据这个id来创建对象,id属性具有唯一性,不能使用特殊字符
IOC(inversion of control)控制反转。创建对象由原先的new转变为引入第三方来创建,注入对象,降低对象间的耦合度。
IOC一般都是进行依赖注入DI,,此DI注入有两种方式setter注入和构造器注入,如下
第一种是setter注入,写个man类实现Serializable,
public class Man implements Serializable {private String hobby;public String getHobby() {return hobby;}public void setHobby(String hobby) {this.hobby = hobby;}}添加bean定义,使用setter注入。name就是man的hobby属性,value就是设置属性值
<bean id="m" class="com.su.bean.Man"><property name="hobby" value="playfootball"></property></bean>第二种是构造器注入,写个woman类实现Serializable,
public class Woman implements Serializable {private String hobby;public Woman(String hobby) {super();this.hobby = hobby;}public String getHobby() {return hobby;}}添加bean定义,使用构造器注入,index就是woman的第一个属性,index从0开始,value就是设置属性值
<bean id="w" class="com.su.bean.Woman"><constructor-arg index="0" value="shopping"></constructor-arg></bean>
最后就可以可以获取man类的hobby的属性值,woman类的获取方法相同
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");Man man=ac.getBean("m",Man.class);System.out.println(man.getHobby());
IOC可以进行自动装配,自动装配可以减少xml的注入配置
写一个People类
public class People implements Serializable {private Man m;private Woman w;public Man getM() {return m;}public Woman getW() {return w;}public void setM(Man m) {this.m = m;}public void setW(Woman w) {this.w = w;}}此people类中有两个类型,分别是man类型和woman类型
添加bean定义
<bean id="pe" class="com.su.bean.People" autowire="byType"></bean>这里的autowire是制定自动装配的原则
bytype的意思是如果容器中存在一个与制定属性相同的bean,那么将与该属性自动装配。
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");People p=ac.getBean("pe",People.class);System.out.println(p.getM().getHobby());System.out.println(p.getW().getHobby());
在这里为什么每个class都要事先serializable?
serializable是序列化,就是将数据结构转化成字节,然后可以进行持久化操作。
0 0
- 关于java中Spring框架一些简单的东西
- Mark关于mybatis的一些简单东西
- 关于JAVA中Spring框架的故事
- android中关于application的一些东西
- 关于JAVA-一些要记住的东西
- 关于java学习的一些东西
- 关于java线程的一些东西
- Java中容易搞错的一些东西
- c++关于排序与检索的一些简单东西
- java的一些东西
- java中spring框架的依赖注入的简单实例
- [Java] 关于Java,你值得看的一些东西
- spring事务管理的一些东西
- SQL中一些简单但常用的东西汇总下
- SQL中一些简单但常用的东西汇总下
- 转载的关于java学习的一些东西
- 关于框架中核心的spring框架
- 关于player的一些东西
- 如何写好一篇博客
- 汇编世界当中过程的经典
- Java中的static关键字解析
- 抽象不仅仅局限于面向对象
- poj1543 Perfect Cubes (搜索,水题)
- 关于java中Spring框架一些简单的东西
- Java垃圾回收机制
- 一起工作一起奋斗才是真的
- POJ 1218 THE DRUNK JAILER
- struts2 学习之 redirectAction初步认识
- AndroidStudio启动时发生The environment variable JAVA_HOMExxxdoes not point to a valid jvm installation的错误
- 删除AX的表
- 平衡二叉树实现的实例
- erlang mnesia 脏写的性能瓶颈和解决办法