spring框架

 

 

它是由Rod Johnson创建的一个开源框架

Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

Ioc 控制反转 DI依赖注入

Aop    aspect oriented programming 面向切面编程

没有ioc是什么样子的

当需要一个对象的时候,我们程序员需要new对象,导致出现问题:耦合度高

有了IOC是什么样子?

Spring  可以提供一个容器,程序启动,通过genbean()执行对象

创建spring项目步骤:

 

  1. 创建一个项目
  2. 添加架包
  3. 创建类  
  4. 配置文件  默认文件applicationContext.xml
  5. <?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:p="http://www.springframework.org/schema/p"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:aop="http://www.springframework.org/schema/aop"
    	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-3.1.xsd
    		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd">
    	<!-- 程序启动的时候,会根据此配置信息,自动初始化对象,此对象就放在容器中 -->
    <!-- 	<bean id="address" class="com.db.entity.Address">
    		<property name="province" value="henan"></property>
    		<property name="city" value="zhengzhou"></property>
    	</bean> -->
    
    <!-- 自动配置通过属性名 -->
    	<!-- <bean id="person" class="com.db.entity.Person" autowire="byName">
    		<property name="name" value="tom"></property>
    		<property name="sex" value="男"></property>
    		<property name="age" value="20"></property>
    	</bean> -->
    
    <!-- 通过引用调用address -->
    <!-- 	<bean id="person" class="com.db.entity.Person" >
    		<property name="name" value="tom"></property>
    		<property name="sex" value="男"></property>
    		<property name="age" value="20"></property>
    		<property name="address" ref="address"></property>
    	</bean>
     -->
     
    
     
    <!--  通过p标签赋值 -->
    <!-- <bean id="person1" class="com.db.entity.Person" p:name="zhangsan" p:sex="nan" p:age="20" >
    </bean>
     -->
    <!-- 自动配置通过属性类型 -->
    <!-- 	<bean id="person" class="com.db.entity.Person" autowire="byType">
    		<property name="name" value="tom"></property>
    		<property name="sex" value="男"></property>
    		<property name="age" value="20"></property>
    	</bean>
    	
    	<bean id="userDao" class="com.db.dao.UserDao"></bean>
    	<bean id="userService" class="com.db.service.UserService">
    	<constructor-arg>
    	<ref bean="userDao"/>
    	</constructor-arg>
    	
    	</bean> -->
    <!-- 	<context:component-scan base-package="com.db"/> -->
    
    <bean id="serverpointcut" class="com.db.addFun.ServerPointcut"></bean>
    <bean id="userservice" class="com.db.service.UserService"></bean>
    <bean id="userdao" class="com.db.dao.UserDao"></bean>
    <aop:config></aop:config>
    </beans>
    
    5.
  6. 写测试类
public static void main(String[] args) {
		// TODO Auto-generated method stub
      ApplicationContext cxt=new ClassPathXmlApplicationContext("applicationContext.xml");
      Person person=new Person("daas", "男", 12);
		//从容器中获取
		UserService service=(UserService) cxt.getBean("userService");
		System.out.println(service.regist(person));
	/*Person person1=(Person) cxt.getBean("person1");
	System.out.println(person1.toString());*/
	}

Cdata 防止字符转义   CDATA【p&g】

Scope=singleton 单例模式

依赖注入:

  • 通过配置:①ref 引用  ②autowire=“byName”>自动注入按‘起的名字’

③autowire=“byType”>自动注入按‘类型’

二,通过注解:

<context:component-scan base-package="com.db"/>

AOP(作用是尽量不改变源码)

原理 动态代理模式

在spring中实现AOP

实现步骤:1.为项目添加Spring的aop支持

  1. 编写目标方法和增强处理
  2. 在spring配置文件中定义切入点
  3. 在切入点织入增强处理

 

构造注入

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值