Spring框架浅学

1.15下午

    学习配置<bean id="起个名字" class="路径(用 . 相连)"></bean>

     Spring的核心配置文件名称和位置不是固定的,但是官方建议将核心配置文件放在src目录下,且命名为applicationContext.xml

    编写类进行测试。

    学习掌握scope属性

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

    单例:singleton(实例的值为最后一次修改后的值)

    多例:prototyoe(保存最初的值不变)

有参,无参的调用方法

无参调用:User()

User user = (User)context.getBean("user");

有参调用:User(String str,Integer age)

User user = (User)context.getBean("user","s");

方法调用

void say()

User user = (User)context.getBean("user");

user.say();(判断为无参所以上面要写一个无参的User)

set,get方法:(赋值给set,传到get中输出)

setName(String name)
String getName()
 user.setName("xiaoming");
System.out.println(user.getName());

1.16上午复习

  下午

    属性依赖注入(简单的四种类型)(alt+insert(导入set,get方法))选择Getter and Setter

先要判断有参无参

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

无参:User user = (User)context.getBean("user");

有参:User user = (User)context.getBean("user","s");

一下的bean的配置都是写<bean name="" class=""></bean>内的

一:

private String name;

private Integer age;

bean配置:

<property name="name" value="123"></property>
<property name="age" value="456"></property>

输出:

System.out.println(user.getName());
System.out.println(user.getAge());

二:

String [] arr = new String[10];

bean配置:

<property name="arr">
    <array>
        <value>哼哼</value>//这一行可重复填写
    </array>
</property>

输出:

for(String str : user.getArr()){
    System.out.println(str);
}

三:

List<String>list = new ArrayList<>();

bean配置:

<property name="list">
    <list>
        <value>小刚</value>//这一行可重复填写
    </list>
</property>

输出:

for(String str : user.getList()){
    System.out.println(str);
}

四:

Map<String,Integer>map = new HashMap<>();

bean配置:

<property name="map">
    <map>
        <entry key="狐妖" value="2333"></entry>
        <entry key="小红娘" value="1234"></entry>
    </map>
</property>

输出:

System.out.println(user.getMap().get("狐妖")+" "+user.getMap().get("小红娘"));

1.17上午复习

  下午

面向切面编程(AOP)

ps:这东西需要建五个项目,但其实都比较简单,有一个项目的写法还是比较固定的

什么是AOP呢?

有一个很形象得例子,比如你想要在一个网站里下载东西,但是这个网站下载东西是需要会员的,当你点击下载的时候,原本你应该跳到下载界面的但是这时候(AOP)会发挥它的作用,在你原本应该应该跳向的页面之前插一个判断,判断你是否满足这个文件下载的资格,就是判断你是否是这个网站的会员,判断为是时,就会自动跳转到下载页面,当判断你不是本站会员时,就会自动跳转到充值界面让你进行充值。

第一个项目(目标类:接口 + 实现类):UserService

public interface UserService {
    public void addUser();
}

第二个项目(.切面类:用于存通知 MyAspect):MyAspect

public class MyAspect {
    public void before(){
        System.out.println("前");
    }
    public void after(){
        System.out.println("后");
    }
}

设置请求前和请求后的执行内容

第三个项目(工厂类:编写工厂生成代理):MyBeanFactory(这个项目里面的代码基本都是固定的)

第四个项目:UserServiceImpl

public class UserServiceImpl implements UserService{}

写出这行代码用alt+enter就可以了

第五个项目(这就是用来测试的,随便起名字啦):ClassTest

ublic class ClassText {
    public static void main(String[] args){
        UserService userService = MyBeanFactory.createService();
        userService.addUser();//对应第一个项目中的方法
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值