Spring框架学习(一)

(一)Spring 框架的依赖的注入的方式

    1通过set方法来完成注入

<bean id="h" class="com.zhiyou100.***.bean.User">
    <property name="name" value="张三"/>  <property> 标签是通过set方法来注入
<property name="age" value="18"/> </bean>

  2通过构造方法来完成依赖注入

<bean id="h1" class="com.zhiyou100.xth.bean.User">
    <constructor-arg index="0" value="阿三"/>
    <constructor-arg index="1" value="28"/>
</bean>

  (二)依赖注入的数据类型

  1基本数据类型和字符串使用value(如上面所示)

  2如果是指向另外一个对象的引用 使用ref

    

  3如果类对象注入的属性类型为list类型

    

<bean id="h1" class="com.zhiyou100.xth.bean.User" scope="prototype">
            <property name="name" value="张三"/>
            <property name="age" value="28"/>
            <property name="list">
     
    <list>
         <bean class="com.zhiyou100.xth.bean.Student">
         <property name="address"   value="南京"/>
</bean>
  <bean class="com.zhiyou100.xth.bean.Student">
      <property name="address"   value="北京"/>
     </bean>
      <bean class="com.zhiyou100.xth.bean.Student">
      <property name="address"   value="华东"/>
     </bean>
      <bean class="com.zhiyou100.xth.bean.Student">
      <property name="address"   value="华北"/>
     </bean>
    </list>
   </property>
 </bean>

 4如果类对象注入的属性类型为map类型

     

<property name="map">
         <map>
         <entry key="jj"  value="积极"/>
         <entry key="hh"  value="哈哈"/>
         <entry key="uu"  value="哈哎s"/>
         <entry key="ii"  value="阿瑟东"/>
         
       </map>
</property >

  (三) Bean的作用域

         

    (四)自动注入

         

       (五)在Spring配置文件中引入配置文件

       

       <context:property-placeholder location="classpath:my.properties"/>
  <bean class="com.zhiyou100.xth.bean.User" id="user">
    <property name="name" value="${user.name}"/> 其中不能使用user.name 那样默认的会是操作者的电脑账户的id 要避开这个关键字
    <property name="age" value="${user.age}"/>
  </bean>

  (六)使用注解的方式

       1 引入jar包   aop的jar包

       2 配置文件中使用包扫描 

      

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

  3 在相应的类加上注解

             

           @Repository   持久化注解。

           @Service         业务层注解

           @Controller     控制层注解

           @Autowired    自动注入 按照类型帮你自动注入,如果由多个类型相同的那么就会在按照名称注入。(建议使用这个)

           @Resource     自动注入 按照名称注入,如果没有相同名称的bean那么会按照类型帮你注入。 它可以指定名称来注入。

    @component

    Controller的代码

@Controller
public class UserControllerimp {

	
	@Autowired
	private UserService userService;
	
	public void findbyid(int id) {
	  userService.queryid(id);
	}

}

  Serviced 代码

@Service
public class UserServiceimp implements UserService{
	@Autowired
	private UserDao userdao;
	

	@Override
	public void queryid(int id) {
	  userdao.selectid(id);
		
	}

}

  dao的代码

   

@Repository
public class UserDaoimp implements UserDao{

	@Override
	public void selectid(int id) {
		System.out.println("++++++++++++++");
		
	}
    
}

  

原文地址:https://www.cnblogs.com/meifanghua/p/11478612.html