叩丁狼培训实战Java教程之自定义spring

Java培训实战教程之自定义spring1.1  描述  在企业级开发中,spring框架应用非常广。为了让已经学习过spring框架同学,可以更深入的理解和应用spring,本文将通过自定义spring,更佳系统的阐述spring核心:IoC、AOP。
  IoC(Inversion of Control)控制反转:将对象的创建权交与spring框架,及将创建权反转给spring框架。IoC主要解决计算机程序的耦合问题。
  AOP(Aspect Oriented Programming)面向切面编程:通过运行期动态代理实现程序功能的统一维护的一种技术。
 
1.2  分析l  如果要实现自定义spring,可以将器拆分成多个功能实现。
l  阶段一:编写配置文件,服务器tomcat启动时,加载配置文件
l  阶段二:使用Jsoup解析xml,并封装到指定的JavaBean中
l  阶段三:编写工厂类用于创建指定bean,并完成property注入
l  阶段四:使用@Transactional进行事务管理
 
1.3  搭建环境1.3.1  javabean
  private UserDao userDao;
  public void setUserDao(UserDao userDao) {
  this.userDao = userDao;
  }
 
  @Override
  public void register(User user) {
  this.userDao.save(user);
  }

1.4.1  xml配置文件l  在src下添加 applicationContext.xml ,并将dao和service配置到xml文件中。
l  使用 bean 标签配置一个实现类
  class:  配置实现类的全限定名称
  id: 进行唯一命名,用于提供给程序获得
l  使用 property 配置javabean属性的注入
  name:  配置的service的属性名
  ref:  配置其他bean对象的引用 
  bean id= userServiceId >   property name= userDao ref= userDaoId /property
  /bean
/beans
l  tomcat启动时,加载配置文件方式总结:
  1.编写Servlet,配置servlet,并添加 load-on-startup ,在init(ServletConfig)初始化方式中加载。
  2.编写Filter,配置filter,在init(FilterConfig)初始化方法中加载
  3.编写Listener,实现接口ServletContext,配置listener,在contextInitialized(ServletContextEvent sce)方法中加载。
l  spring采用listener方案
  1.提供实现类ContextLoaderListener
  2.编写全局初始化参数contextConfigLocation,用于确定xml位置
  param-value classpath:applicationContext.xml /param-value 加载类路径下的xml文件
  param-value applicationContext.xml /param-value 加载WEB-INF目录的配置文件
 


l  xml配置

  param-name contextConfigLocation /param-name
  param-value classpath:applicationContext.xml /param-value
  /context-param
 
  !-- 配置监听器 --
  listener
  listener-class cn.itcast.myspring.listener.ContextLoaderListener /listener-class
  /listener
  @Override
  public void contextInitialized(ServletContextEvent sce) {
  // 0 获得ServletContext对象应用
  ServletContext context = sce.getServletContext();
  // 1 加载配置
  String config = context.getInitParameter( contextConfigLocation
  if(config == null){ //默认配置文件位置
  config= applicationContext


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部