Spring框架

一、什么是Spring

Spring是一个开源的轻量级的应用开发框架,其目的是用于简化企业级应用程序开发,减少侵入; Spring提供的IOC和AOP应用,可以将组件的耦合度降至最低,即解耦,便于系统日后的维护和升级; Spring为系统提供了一个整体的解决方案,开发者可以利用它本身提供的功能外,也可以与第三方框架 和技术整合应用,可以自由选择采用哪种技术进行开发。

二、Spring容器介绍

在Spring中,任何的Java类和JavaBean都被当成Bean处理,这些Bean通过容器管理和应用。 Spring容器实现了IOC和AOP机制,这些机制可以简化Bean对象的创建和Bean对象之间的解耦; Spring容器有BeanFactory和ApplicationContext两种类型;ApplicationContext继承自BeanFactory接口

String conf="applicationContext.xml";
ApplcationContext ac=new ClassPathXmlApplicationContext(conf)

三、Spring容器的使用

从本质上讲,BeanFactory和ApplicationContext仅仅只是一个维护Bean定义以及相互依赖关系的高级 工厂接口,通过BeanFactory和ApplicationContext我们可以访问bean定义<

四  一些配置

pom.xml:

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.9.RELEASE</version>
    </dependency>
  </dependencies>

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:tx="http://www.springframework.org/schema/tx" 
    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.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd">
    

五 方法

String类型,List集合,Map对其赋值方法

<bean id="emp"  class="org.example.pojo.Emp">
    <property name="id" value="12"/>
    <property name="name" value="黄子弘凡"/>
    <property name="aihao">
        <list>
            <value>qima</value>
            <value>volleyball</value>
        </list>
    </property>
    <property name="mp">
        <map>
            <entry key="y001" value="val001"/>
            <entry key="y002" value="val002"/>
            <entry key="y003" value="val003"/>
        </map>
    </property>
</bean>

</beans>

测试部分代码

 String path = "applicationContext.xml";
        ApplicationContext ac = new ClassPathXmlApplicationContext(path);
       // Emp emp = (Emp) ac.getBean("emp");
          Emp emp=ac.getBean(Emp.class);
        System.out.println(emp.getName());
        System.out.println(emp.getAihao());
        System.out.println(emp.getMp());
        //key值的集合
        Map mp=emp.getMp();
        Set keys=emp.getMp().keySet();
        for(Object key:keys){
            Object val=mp.get(key);
            System.out.println(val);
        }
           emp.show();
    }

对自己定义的类进行bean操作:

引入该类

<bean id="pet" class="org.example.pojo.Pet"/>

在要使用该类的bean下加入:

 <property name="pet" ref="pet"/>

六,基于注解的组件扫描

1、什么是组件扫描 指定一个包路径,Spring会自动扫描该包及其子包所有组件类,当发现组件类定义前有特定的注解标 记时,就将该组件纳入到Spring容器。等价于原有XML配置中的定义功能;组件扫描可以替代大量XML 配置的。

2、指定扫描类路径 使用组件扫描,首先需要在XML配置中指定扫描路径

 <context:component-scan base-package="org.example"/>

上面配置,容器实例化时会自动扫描org.example包及其子包下所有组件类。

3、自动扫描的注解标记 指定扫描类路径后,并不是该路径下所有组件类都扫描到Spring容器的,只有在组件类定义前面有以下 注解标记时,才会扫描到Spring容器。

注解标记描述
@Component通用注解
@Repository持久化层组件注解
@Service业务层组件注解
@Controller控制层组件注解

4、自动扫描组件命名 当一个组件在扫描过程中被检测到时,会生成一个默认的id值,默认id为小写开头的类名。也可以在注 解标记中 自定义id;譬如:

@Repository
public class OracleUserDao implements UserDao{
//.....
}
@Service("loginService")
public class UserService{
//....
}

5、指定依赖注入关系 具有依赖关系的Bean对象,利用下面任意一种注解都可以实现关系注入

@Resource
//@Resource注解标记可以用在字段定义或setter方法定义前面,默认首先按名称匹配注入,然后类型匹配
注入。
当遇到多个匹配Bean的注入时就会发生错误,可以显式指定名称@Resource(name="empdao")
@Autowired/@Qualifier
/**@Autowired 注解标记也可以用在字段定义或setter方法定义前面,默认按类型匹配注入;
* @Autowired当遇到多个匹配Bean时注入会发生错误,可以使用下面方法指定名称*/
public class UserService{
// @AutoWired
//@Qualifier("myUserDao")
private UserDao userdao;
@AutoWired
public void setUserDao(@Qualifier("myUserDao") UserDao userdao)
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值