Spring学习1

1、下载eclipse
https://spring.io/tools3/eclipse
2、将jar包导入到当前的web工程中
https://www.cnblogs.com/xxuan/p/6949640.html
3、eclipse中添加spring XML配置文件
https://www.cnblogs.com/XingXiaoMeng/p/11159011.html
4、spring所需要的jar
https://blog.csdn.net/zhidashang/article/details/78706027
5、学习博客
https://www.cnblogs.com/wmyskxz/p/8830632.html

AOP 即 Aspect Oriented Program 面向切面编程
首先,在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能。
所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务
所谓的周边功能,比如性能统计,日志,事务管理等等
周边功能在 Spring 的面向切面编程AOP思想里,即被定义为切面
在面向切面编程AOP的思想里面,核心业务功能和切面功能分别独立进行开发,然后把切面功能和核心业务功能 “编织” 在一起,这就叫AOP

AOP 的目的
AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。
AOP 当中的概念:
切入点(Pointcut)
在哪些类,哪些方法上切入(where)
通知(Advice)
触发切面的代码
切面(Aspect)
封装的周边功能的类
织入(Weaving)
把切面加入到对象,并创建出代理对象的过程。(由 Spring 来完成)

装配常用的Bean类的方法:
public class ComplexAssembly {
private Long id;
private List list;
private Map map;
private Properties properties;
private Set set;
private String[] array;

/* setter and getter */
}

value-list-1 value-list-2 value-list-3 value-prop-1 value-prop-2 value-prop-3 value-set-1 value-set-2 value-set-3 value-array-1 value-array-2 value-array-3

我们更多的是使用注解进行装配bean
通过注解装配 Bean
上面,我们已经了解了如何使用 XML 的方式去装配 Bean,但是更多的时候已经不再推荐使用 XML 的方式去装配 Bean,更多的时候回考虑使用注解(annotation) 的方式去装配 Bean。
优势:
1.可以减少 XML 的配置,当配置项多的时候,臃肿难以维护
2.功能更加强大,既能实现 XML 的功能,也提供了自动装配的功能,采用了自动装配后,程序猿所需要做的决断就少了,更加有利于对程序的开发,这就是“约定由于配置”的开发原则
在 Spring 中,它提供了两种方式来让 Spring IoC 容器发现 bean:
组件扫描:通过定义资源的方式,让 Spring IoC 容器扫描对应的包,从而把 bean 装配进来。
自动装配:通过注解定义,使得一些依赖关系可以通过注解完成。
使用@Component , @ComponentScan(basePackages=“com.xxx.xxx”),@Autowired()

//定义bean类,设置注解
@Component(“studentService”)
@Scope(“prototype”) //使用的prototype,那么每次使用getBean获取对象的时候,都会出现一个新的对象 ,默认使用singleton,只会有个对象
public class StudentServiceImp implements StudentServiceDao {
@Autowired //默认是按照类型的进行装配
public Student student = null;
public void describe() {
System.out.println(“姓名2==” + student.name + " 年龄==" + student.age);
}
}
//在配置文件中配置组件扫描 不要忘记在beans中配置响应的属性



在java文件中进行使用
AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(StudentConfig.class);

// 每次使用的时候创建一个新的对象 配合的是使用@scope注解
StudentServiceImp bean4 = (StudentServiceImp) annotationConfigApplicationContext.getBean(“studentService”);
bean4.describe();
StudentServiceImp bean7 = (StudentServiceImp) annotationConfigApplicationContext.getBean(“studentService”);
System.out.println(“对象4==”+bean4+" 对象7=="+bean7); //获取到的是不同的对象

你可能感兴趣的:(Spring)