Spring框架
-----------------------------------------------
要了解最新的Spring要进入官网
Spring Cloud Spring云端
Spring是什么?
1、Spring是一个开源框架,他的创建是为了解决企业级应用开发的复杂性
2、Spring使用普通的javabean技术就能实现以前只能使用ejb技术实现的事情
3、然而,Spring的用途不仅限于服务器的开发
4、就简单性、可测试性、松散耦合性来说,任何java应用都能从Spring获益
5、Spring做了许多事情,但是分解成基本部分,Spring是一个轻量级的依赖注入
---和面向切面的容器框架
---------------------------------------------------------
·轻量级框架
--发布仅一个jar包
--额外消耗可以忽略不计
--非侵入性
·容器
--管理对象的生命周期
--控制对象的创建方式
·ioc
--控制倒转/依赖注入
--配置及管理对象的依赖关系
·aop
--面向切面编程
--oop及ioc的补充
·通用解决方法及最佳实践
--当前流行开源产品的封装
-------------------------------------------------------------
首先建立一个Maven项目
ioc容器
首先要下载类库要
在maven官网下载jdom
复制编码到pom.xml代码如下但是要放到<dependencies></dependencies>里面
---------
<!-- https://mvnrepository.com/artifact/jdom/jdom -->
<dependency>
<groupId>jdom</groupId>
<artifactId>jdom</artifactId>
<version>1.0</version>
</dependency>
----------
建立beans.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<!-- class里面是Dao层的实现类的全路径及Service层的类 -->
<bean name="u" class="com.neusoft.daoimpl.UserDaoImpl"></bean>
<!-- name="userService"表示service里面的类 -->
<!-- class="com.neusoft.cervice.Userservice"表示service的全路径 -->
<bean name="userService" class="com.neusoft.cervice.Userservice">
<!-- name="userDao"初始化userDao接口 bean="u"指向name="u"的bean-->
<property name="userDao" ref="u"/>
</bean>
</beans>
--------------------------
ioc的原理,创建工厂类和接口对上面的xml文件进行管理
public class BeanFactoryImpl implements BeanFactory{
private Map<String, Object> beans = new HashMap<String, Object>();
public BeanFactoryImpl() throws Exception, IOException{
//创建一个解析器
SAXBuilder saxbuilder = new SAXBuilder();
//构件并加载Beans.xml文件
Document document = saxbuilder.build(this.getClass().getClassLoader().getResourceAsStream("beans.xml"));
//获取根元素
Element root = document.getRootElement();
//获取子节点
List list = root.getChildren("bean");
for(int i = 0; i<list.size();i++){
Element element = (Element) list.get(i);//拿到bean元素
String name = element.getAttributeValue("name");
String clazz = element.getAttributeValue("class");
System.out.println(name+" "+clazz);
//要将clazz转成Object对象,然后将对象保存到Map当中
//通过java中的反射创建对象
Object object = Class.forName(clazz).newInstance();
beans.put(name, object);
for (Element element2 : (List<Element>)element.getChildren("property")) {
String name2 = element2.getAttributeValue("name");
String bean = element2.getAttributeValue("ref");//u
//从Map当中获取到u所对应的实现
Object beanobject = beans.get(bean);//com.neusoft.daoimpl.UserDaoImpl
//模拟的构造set方法:setUserDao(UserDao userDao)
String methodName = "set"+name2.substring(0,1).toUpperCase()+name2.substring(1);
System.out.println(methodName);
}
}
System.out.println(beans);
}
@Override
public Object getBean(String id) {
// TODO Auto-generated method stub
return null;
}
public static void main(String[] args) {
try {
new BeanFactoryImpl();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
-----------------------------------------------
要了解最新的Spring要进入官网
Spring Cloud Spring云端
Spring是什么?
1、Spring是一个开源框架,他的创建是为了解决企业级应用开发的复杂性
2、Spring使用普通的javabean技术就能实现以前只能使用ejb技术实现的事情
3、然而,Spring的用途不仅限于服务器的开发
4、就简单性、可测试性、松散耦合性来说,任何java应用都能从Spring获益
5、Spring做了许多事情,但是分解成基本部分,Spring是一个轻量级的依赖注入
---和面向切面的容器框架
---------------------------------------------------------
·轻量级框架
--发布仅一个jar包
--额外消耗可以忽略不计
--非侵入性
·容器
--管理对象的生命周期
--控制对象的创建方式
·ioc
--控制倒转/依赖注入
--配置及管理对象的依赖关系
·aop
--面向切面编程
--oop及ioc的补充
·通用解决方法及最佳实践
--当前流行开源产品的封装
-------------------------------------------------------------
首先建立一个Maven项目
ioc容器
首先要下载类库要
在maven官网下载jdom
复制编码到pom.xml代码如下但是要放到<dependencies></dependencies>里面
---------
<!-- https://mvnrepository.com/artifact/jdom/jdom -->
<dependency>
<groupId>jdom</groupId>
<artifactId>jdom</artifactId>
<version>1.0</version>
</dependency>
----------
建立beans.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<!-- class里面是Dao层的实现类的全路径及Service层的类 -->
<bean name="u" class="com.neusoft.daoimpl.UserDaoImpl"></bean>
<!-- name="userService"表示service里面的类 -->
<!-- class="com.neusoft.cervice.Userservice"表示service的全路径 -->
<bean name="userService" class="com.neusoft.cervice.Userservice">
<!-- name="userDao"初始化userDao接口 bean="u"指向name="u"的bean-->
<property name="userDao" ref="u"/>
</bean>
</beans>
--------------------------
ioc的原理,创建工厂类和接口对上面的xml文件进行管理
public class BeanFactoryImpl implements BeanFactory{
private Map<String, Object> beans = new HashMap<String, Object>();
public BeanFactoryImpl() throws Exception, IOException{
//创建一个解析器
SAXBuilder saxbuilder = new SAXBuilder();
//构件并加载Beans.xml文件
Document document = saxbuilder.build(this.getClass().getClassLoader().getResourceAsStream("beans.xml"));
//获取根元素
Element root = document.getRootElement();
//获取子节点
List list = root.getChildren("bean");
for(int i = 0; i<list.size();i++){
Element element = (Element) list.get(i);//拿到bean元素
String name = element.getAttributeValue("name");
String clazz = element.getAttributeValue("class");
System.out.println(name+" "+clazz);
//要将clazz转成Object对象,然后将对象保存到Map当中
//通过java中的反射创建对象
Object object = Class.forName(clazz).newInstance();
beans.put(name, object);
for (Element element2 : (List<Element>)element.getChildren("property")) {
String name2 = element2.getAttributeValue("name");
String bean = element2.getAttributeValue("ref");//u
//从Map当中获取到u所对应的实现
Object beanobject = beans.get(bean);//com.neusoft.daoimpl.UserDaoImpl
//模拟的构造set方法:setUserDao(UserDao userDao)
String methodName = "set"+name2.substring(0,1).toUpperCase()+name2.substring(1);
System.out.println(methodName);
}
}
System.out.println(beans);
}
@Override
public Object getBean(String id) {
// TODO Auto-generated method stub
return null;
}
public static void main(String[] args) {
try {
new BeanFactoryImpl();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}