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();//对应第一个项目中的方法 } }