Spring002

练习一:

第一步:编写UserDao 接口 和 它的实现类

public interface UserDao {
    public void addNewUser(User user);
}
public class UserDaoImpl implements UserDao {
    @Override
    public void addNewUser(User user) {
        System.out.println("用户添加成功");
    }
}

 第二步:编写UserService接口 和它的实现类

public interface UserService {
    public void addUser(User user);
}
public class UserServiceImpl implements UserService{
    private UserDao ud;
    public UserDao getUd() {
        return ud;
    }
    public void setUd(UserDao ud) {
        this.ud = ud;
    }
    @Override
    public void addUser(User user) {
        System.out.println(user.toString());
        ud.addNewUser(user);
    }
}

 第三步,在xml文件中进行配置

<bean id="UserDao" class="com.spring.dao.impl.UserDaoImpl"></bean>

    <bean id="User" class="com.spring.pojo.User" p:age="560" p:name="张飞"></bean>

    <bean id="p" class="com.spring.service.UserServiceImpl"  p:ud-ref="UserDao">
    </bean>

 第四步:进行测试

public class TestUserService {

    @Test
    public void test(){
      ApplicationContext  con = new  ClassPathXmlApplicationContext("applicationContext.xml");
      UserService us =   (UserService)con.getBean("p");
      User u =   (User) con.getBean("User");
      us.addUser(u);
    }
}

 练习二:使用注解 进行Aop

第一步:在Spring001练习三的基础上进行改动,修改xml文件中的配置

<bean id="ArithLogger" class="com.spring.aop.ArithMaticImplLogger"></bean>
<!--    开启注解-->
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>

 第二步:对切面类ArithMaticImplLogger进行注解

package com.spring.aop;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

import java.util.Arrays;
import java.util.List;

/**
 * @auther zll
 * @create 2020/7/14-23:55
 */
@Aspect  
public class ArithMaticImplLogger {

    @Before("execution(public int com.spring.aop.ArithMaticImpl.add(int,int))")
    public void beforeLogger(JoinPoint joinPoint){

        String methodName = joinPoint.getSignature().getName();
        List<Object> args = Arrays.asList(joinPoint.getArgs());
        System.out.println("The Method "+methodName+" with "+args);
    }

    @AfterReturning( pointcut = "execution(public int com.spring.aop.ArithMaticImpl.add(int,int))",returning = "object")
    public void afterLogger(JoinPoint joinPoint ,Object object){
        String methodName = joinPoint.getSignature().getName();
        System.out.println("The Method "+methodName+ " ends res: "+object);
    }
}

 练习三:构造注入

第一步:在Spring001中练习一的基础上修改applicationContext.xml 文件中的配置

<!--    构造注入 -->
    <bean id="personSay2" class="com.spring.beans.Person">
        <constructor-arg value="张嘎" index="0"></constructor-arg>
        <constructor-arg value="三天不打小鬼子,手都痒痒" index="1"></constructor-arg>
    </bean>
    <bean id="personSay3" class="com.spring.beans.Person">
        <constructor-arg value="Rod" index="0"></constructor-arg>
        <constructor-arg value="世界上有两种人,认识二进制的和不认识二进制的" index="1"></constructor-arg>
    </bean>

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值