(5)spring IOC 总结

Java Spring框架 总结

一、环境的搭建

  1. 下载和安装JDK(一般也包含了jre)
  2. 配置jdk的系统变量JAVA_HOME
  3. 下载tomcat
  4. 4.下载mysql
  5. 下载开发工具eclipse或者idea并配置好上面下载的工具

二、基础知识

  1. 容器:spring容器管理对象的生命周期,以及对象与对象之间的依赖关系。
  2. Ioc:控制反转,即依赖关系的转移
  3. 依赖注入:对象与对象之间依赖关系的实现,构造注入,属性setter注入。
  4. AOP:面向切面编程,将日志、安全、事务管理理解成一个“方面”,剥离出来,不混合在业务逻辑,实现复用。
  5. BeanFactory ApplicationContext 有三实现类:
    ClassPathXmlApplicationContext 从类路径中找指定xml配置文件
    FileSystemXmlApplicationContext 从文件系统路径找xml文件
    XmlWebApplicationContext 从web系统的xml文件
  6. bean的作用域:
    singleton (ioc容器中bean只有一个实例)
    prototype (一个bean多个实例)
    request (不同http请求返回不同实例)
    session(不同http session请求不同实例)
    global session(全局session中 bean只有一个)
  7. 注解:
    @Component 仅仅表示一个组件bean
    @Repository 用于将数据访问层(DAO)标识为spring的bean
    @Service 用于业务层(Service)标识为bean
    @Controller 用于控制层(Controller)标识为bean
    @AutoWired 用于对bean的属性变量和属性setter、getter进行标注,完成bean的自动配置工作
    @Resource 作用同@AutoWired,不同@AutoWired按照Bean的类型进行装配,@Resource按照Bean的实例名称进行装配。
    @Qualifier 将默认按bean类型装配改为按Bean实例名称进行装配

三、spring框架安装

  1. 下载spring-framework-x.x.x.RELEASE 版本
  2. 创建javaweb项目,新建lib文件夹
  3. lib放入 spring-core-x.x.xRELEASE.jar
    spring-beans-x.x.x.RELEASE.jar
    spring-context-x.x.x.RELEASE.jar
    spring-expression-x.x.x.RELEASE.jar
    4.右键Build Path -> Add to Build Path 添加进web项目构建路径

四、示例1
(1)新建IHello接口

package com.ssm
public interface IHello{
   public void show();
}

(2)新建HelloSpring类

package com.ssm;
public class HelloSpringImpl implements IHello{
  private String userName;
  public HelloSpringImpl(String userName){
    this.userName = userName;
  }
  public void setUserName(String userName){
     this.userName = userName;
  }
  public void show(){
   System.out.Println(userName + ": 欢迎来到Spring世界,老而不老");
  }
}

(3)创建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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">
   <!-- 配置bean,spring创建其对象的实例-->
    <bean id="helloSpring" class="com.ssm.HelloSpringImpl " scope = "singleton">  --bean默认作用域 一个容器只有一个共享bean实例
        <property name="userName" value="李四"></property>  -----setter方式注入--常用
        <constructor-arg name ="userName" vlue = "李四"/>   -----构造方式注入  
    </bean>

</beans>

(4)创建测试类,运行

package com.ssm
import org.springframework.context.ApplicationContext;
import org springframework.support.ClassPathXmlApplicationContext;

public class TestHelloSpring{
  public static void main(String[] args){
    ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    HelloSpring helloSpring = (HelloSpring) ctx.getBean("helloSpring");
    helloSpring.show();
  }
}

---------------------------------
李四:欢迎来到Spring世界,老而不老
--------------------------------

五、较成熟示例2:
(1)创建接口类

package com.ssm.dao;
public interface UserDAO{
 public boolean login(String loginName,String loginPwd);
}

(2)创建接口实现类:简单的登录验证实际中应该从数据库取数据

package com.ssm.dao.impl;
import com.ssm.dao.UserDAO;
public class UserDAOImpl implements UserDAO{
@Override
 public boolean login(String loginName,String loginPwd){
   if(loginName.equals("admin") && loginPwd.equals("123456"){
      return true;
   }else{
      retrun false;
   }
 }
}

(3)创建service类

package com.ssm.dao.service;
public interface UserService{
 public boolean login(String loginName,String loginPwd);
}

(3)创建service实现类

package com.ssm.service.impl;
import com.ssm.service.Userservice;
import com.ssm.dao.UserDAO
public class UserserviceImpl implements Userservice{
UserDAO userDAO;
public void setUserDAO(UserDAO userDAO){this.userDAO = userDAO};

@Override
 public boolean login(String loginName,String loginPwd){
   return userDAO.login(loginName,loginPwd);
 }
}

(4)配置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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">
   <!-- 配置bean,spring创建其对象的实例-->
    <bean id="userDAO" class="com.ssm.dao.Impl.userDAOImpl">   </bean>
    <bean id="userService" class="com.ssm.service.impl.UserviceImpl">
         <property name="userDAO" ref="userDAO"/>
    </bean>
</beans>

(5)创建测试类,运行

package com.ssm
import org.springframework.context.ApplicationContext;
import org springframework.support.ClassPathXmlApplicationContext;
import com.ssm.service.UserService;
public class TestSpring{
  public static void main(String[] args){
    ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    UserService userService = ctx.getBean("userService");
    boolean flag = userService.login("adiming,"123456");
    if(flag){System.out.println("登录成功");}
    else{System.out.println("登录失败");} 
  }
}

五、注解示例3:
使用注解@Repository

package com.ssm.dao.impl;
import org.springframework.stereotype.Repository;
import com.ssm.dao.UserDAO;
@Repository("userDAO")
public class UserDAOImpl implements UserDAO{
@Override
 public boolean login(String loginName,String loginPwd){
   if(loginName.equals("admin") && loginPwd.equals("123456"){
      return true;
   }else{
      retrun false;
   }
 }
}

使用注解@Service 和@AutoWired

package com.ssm.service.impl;
import org.springframework.beans.factory.annotion.Autowired;
import org.springframework.stereotype.Service;
import com.ssm.service.Userservice;
import com.ssm.dao.UserDAO
@Service("userService")
public class UserserviceImpl implements Userservice{
@AutoWired
UserDAO userDAO;
public void setUserDAO(UserDAO userDAO){this.userDAO = userDAO};

@Override
 public boolean login(String loginName,String loginPwd){
   return userDAO.login(loginName,loginPwd);
 }
}

修改配置类,需要开启组件扫描,让spring可以扫描类路径的类,并识别出注解

<?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:xsi="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
   <!-- 配置自动扫描的基包-->
   <context:component-scan base-package="com.ssm"/>  --需要扫描多个包时,可以用逗号分隔
</beans>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值