wuheng 2 年之前
当前提交
eacf91a237
共有 35 个文件被更改,包括 823 次插入0 次删除
  1. 52 0
      .gitignore
  2. 35 0
      day01/pom.xml
  3. 15 0
      day01/src/main/java/com/lovecoding/auto/AutoTest.java
  4. 43 0
      day01/src/main/java/com/lovecoding/beans/GetBean.java
  5. 23 0
      day01/src/main/java/com/lovecoding/beans/Person.java
  6. 5 0
      day01/src/main/java/com/lovecoding/beans/Persons.java
  7. 23 0
      day01/src/main/java/com/lovecoding/beans/User.java
  8. 29 0
      day01/src/main/java/com/lovecoding/beans/UserTest.java
  9. 36 0
      day01/src/main/java/com/lovecoding/di/Book.java
  10. 18 0
      day01/src/main/java/com/lovecoding/di/BookTest.java
  11. 35 0
      day01/src/main/java/com/lovecoding/diarray/ArrTest.java
  12. 26 0
      day01/src/main/java/com/lovecoding/diarray/Dep.java
  13. 39 0
      day01/src/main/java/com/lovecoding/diarray/Imp.java
  14. 23 0
      day01/src/main/java/com/lovecoding/diarray/MyBeanPost.java
  15. 23 0
      day01/src/main/java/com/lovecoding/factory/MyFactoryBean.java
  16. 13 0
      day01/src/main/java/com/lovecoding/factory/MyFactoryBeanTest.java
  17. 44 0
      day01/src/main/resources/array.xml
  18. 16 0
      day01/src/main/resources/auto.xml
  19. 19 0
      day01/src/main/resources/book.xml
  20. 8 0
      day01/src/main/resources/factoryBean.xml
  21. 2 0
      day01/src/main/resources/propers.propertes
  22. 32 0
      day01/src/main/resources/users.xml
  23. 33 0
      day02/pom.xml
  24. 49 0
      day02/src/main/java/com/lovecoding/controller/LoginController.java
  25. 10 0
      day02/src/main/java/com/lovecoding/dao/LoginDao.java
  26. 5 0
      day02/src/main/java/com/lovecoding/service/LoginService.java
  27. 26 0
      day02/src/main/java/com/lovecoding/service/LoginServiceImpl.java
  28. 18 0
      day02/src/main/resources/anno.xml
  29. 35 0
      demo01/pom.xml
  30. 25 0
      demo01/src/main/java/com/lovecoding/controller/LoginController.java
  31. 7 0
      demo01/src/main/java/com/lovecoding/dao/LoginDao.java
  32. 7 0
      demo01/src/main/java/com/lovecoding/service/LoginService.java
  33. 17 0
      demo01/src/main/java/com/lovecoding/service/LoginServiceImpl.java
  34. 10 0
      demo01/src/main/resources/login.xml
  35. 22 0
      pom.xml

+ 52 - 0
.gitignore

@@ -0,0 +1,52 @@
+######################################################################
+# Build Tools
+
+.gradle
+/build/
+!gradle/wrapper/gradle-wrapper.jar
+
+target/
+!.mvn/wrapper/maven-wrapper.jar
+
+######################################################################
+# IDE
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### JRebel ###
+rebel.xml
+
+### NetBeans ###
+nbproject/private/
+build/*
+nbbuild/
+dist/
+nbdist/
+.nb-gradle/
+*DS_Store
+######################################################################
+# Others
+*.log
+*.xml.versionsBackup
+*.swp
+
+!*/build/*.java
+!*/build/*.html
+!*/build/*.xml
+
+
+production/*
+out/*
+/artifacts

+ 35 - 0
day01/pom.xml

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>spring</artifactId>
+        <groupId>com.lovecoding.spring</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>day01</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-context</artifactId>
+            <version>5.3.22</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-beans</artifactId>
+            <version>5.3.22</version>
+        </dependency>
+
+    </dependencies>
+
+</project>

+ 15 - 0
day01/src/main/java/com/lovecoding/auto/AutoTest.java

@@ -0,0 +1,15 @@
+package com.lovecoding.auto;
+
+import com.lovecoding.beans.Person;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class AutoTest {
+
+    public static void main(String[] args) {
+        ClassPathXmlApplicationContext context =
+                new ClassPathXmlApplicationContext("auto.xml");
+        Person Person = context.getBean("Person", Person.class);
+        Person.getUser().say();
+    }
+
+}

+ 43 - 0
day01/src/main/java/com/lovecoding/beans/GetBean.java

@@ -0,0 +1,43 @@
+package com.lovecoding.beans;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class GetBean {
+
+    public static void main(String[] args) {
+
+        //获取Bean对象
+        //第一种通过Bean对象名字获取
+//        ClassPathXmlApplicationContext context =
+//                new ClassPathXmlApplicationContext("users.xml");
+//        Person Person = (Person) context.getBean("Person");
+//        Person.getUser().say();
+
+        //第二种获取bean对象方法  这种查询bean对象的方式是 后期常见的类型
+//        ClassPathXmlApplicationContext context1 =
+//                new ClassPathXmlApplicationContext("users.xml");
+//        Person bean = context1.getBean(Person.class);
+//        bean.getUser().say();
+
+        //第三种 通过类型 加 bean名字获取
+//        ClassPathXmlApplicationContext context2 =
+//                new ClassPathXmlApplicationContext("users.xml");
+//        Person Person = context2.getBean("Person", Person.class);
+//        Person.getUser().say();
+
+        /**
+         * 我们配置多个 同类型的 Bean对象, 然后通过 类型去查找Bean
+         * 会发生冲突, 这个时候 可以使用 Bean ID +  类型 查找对象
+         */
+//        ClassPathXmlApplicationContext context3 =
+//                new ClassPathXmlApplicationContext("users.xml");
+//        User bean = context3.getBean( "user1", User.class);
+//        System.out.println(  bean  );
+//        ClassPathXmlApplicationContext context4 =
+//                new ClassPathXmlApplicationContext("users.xml");
+//        Persons bean = context4.getBean(Persons.class);
+//        bean.say();
+
+    }
+
+}

+ 23 - 0
day01/src/main/java/com/lovecoding/beans/Person.java

@@ -0,0 +1,23 @@
+package com.lovecoding.beans;
+
+public class Person  implements Persons {
+
+    public Person(){
+        System.out.println( "Person run ...." );
+    }
+
+    private User user;
+
+    public User getUser() {
+        return user;
+    }
+
+    public void setUser(User user) {
+        this.user = user;
+    }
+
+    @Override
+    public void say() {
+        System.out.println( "Person say Hello World" );
+    }
+}

+ 5 - 0
day01/src/main/java/com/lovecoding/beans/Persons.java

@@ -0,0 +1,5 @@
+package com.lovecoding.beans;
+
+public interface Persons {
+     void say();
+}

+ 23 - 0
day01/src/main/java/com/lovecoding/beans/User.java

@@ -0,0 +1,23 @@
+package com.lovecoding.beans;
+
+public class User implements Persons {
+
+    public User(){
+        System.out.println( "User run ...." );
+    }
+
+    public User( String username ) {
+        this.username = username;
+    }
+
+    private String username;
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+    public void say(){
+        System.out.println( username + " Say Hello World" );
+    }
+
+
+}

+ 29 - 0
day01/src/main/java/com/lovecoding/beans/UserTest.java

@@ -0,0 +1,29 @@
+package com.lovecoding.beans;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class UserTest {
+
+    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
+
+//          Ioc 演示
+//        ClassPathXmlApplicationContext context =
+//                new ClassPathXmlApplicationContext("users.xml");
+//        User user =  (User) context.getBean("user");
+//        user.say();
+
+//          演示 Ioc 匹配对象类型 自动注入
+        ClassPathXmlApplicationContext context =
+                new ClassPathXmlApplicationContext("users.xml");
+        Person Person = context.getBean("Person", Person.class);
+        User user = Person.getUser();
+        user.say();
+
+//        Spring 框架IOC 实例化对象是通过反射和空参构造器
+//        Class aClass = Class.forName("com.lovecoding.beans.User");
+//        User o =  (User) aClass.newInstance();
+//        o.say();
+
+    }
+
+}

+ 36 - 0
day01/src/main/java/com/lovecoding/di/Book.java

@@ -0,0 +1,36 @@
+package com.lovecoding.di;
+
+public class Book {
+
+    /**
+     * 注入就是DI
+     * 注入 一般分为两种
+     * 1 通过 set方法 注入
+     * 2 通过构造函数 注入
+     */
+    private String title;
+    private String author;
+
+    public Book(){}
+
+    public Book( String title, String author ){
+        this.title = title;
+        this.author = author;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    @Override
+    public String toString() {
+        return "Book{" +
+                "title='" + title + '\'' +
+                ", author='" + author + '\'' +
+                '}';
+    }
+
+    public void setAuthor(String author) {
+        this.author = author;
+    }
+}

+ 18 - 0
day01/src/main/java/com/lovecoding/di/BookTest.java

@@ -0,0 +1,18 @@
+package com.lovecoding.di;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class BookTest {
+
+    public static void main(String[] args) {
+
+        ClassPathXmlApplicationContext context =
+                new ClassPathXmlApplicationContext("book.xml");
+
+        Book book = context.getBean("book", Book.class);
+
+        System.out.println( book );
+
+    }
+
+}

+ 35 - 0
day01/src/main/java/com/lovecoding/diarray/ArrTest.java

@@ -0,0 +1,35 @@
+package com.lovecoding.diarray;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import java.util.HashMap;
+
+public class ArrTest {
+    public static void main(String[] args) {
+//        ClassPathXmlApplicationContext context =
+//                new ClassPathXmlApplicationContext("array.xml");
+//        Imp bean = context.getBean(Imp.class);
+//        HashMap<String, Dep> dep = bean.getDep();
+//        System.out.println(dep.get("dep").getTitle());
+//        System.out.println(dep.get("dep1").getTitle());
+//        System.out.println( bean );
+
+        ClassPathXmlApplicationContext context =
+                new ClassPathXmlApplicationContext("array.xml");
+
+//        Dep dep = context.getBean("dep", Dep.class);
+//        Dep dep1 = context.getBean("dep", Dep.class);
+//        Dep dep2 = context.getBean("dep", Dep.class);
+//        Dep dep3 = context.getBean("dep", Dep.class);
+//
+//        System.out.println( dep );
+//        System.out.println( dep1 );
+//        System.out.println( dep2 );
+//        System.out.println( dep3 );
+
+        System.out.println( context.getBean(Dep.class) );
+
+        context.close();
+
+    }
+}

+ 26 - 0
day01/src/main/java/com/lovecoding/diarray/Dep.java

@@ -0,0 +1,26 @@
+package com.lovecoding.diarray;
+
+public class Dep {
+    private String title;
+
+    public Dep(){
+        System.out.println( "(1) bean对象创建" );
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void init(){
+        System.out.println( "(3) bean对象初始化" );
+    }
+
+    public void setTitle(String title) {
+        System.out.println( "(2) bean对象参数赋值" );
+        this.title = title;
+    }
+
+    private void destroy() {
+        System.out.println( "(4) bean对象销毁" );
+    }
+}

+ 39 - 0
day01/src/main/java/com/lovecoding/diarray/Imp.java

@@ -0,0 +1,39 @@
+package com.lovecoding.diarray;
+
+import java.lang.reflect.Array;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+public class Imp {
+    private String username;
+
+    private List<String> no;
+
+    public void setNo(List<String> no) {
+        this.no = no;
+    }
+
+    private HashMap<String, Dep> dep;
+
+    public HashMap<String, Dep> getDep() {
+        return dep;
+    }
+
+    public void setDep(HashMap<String, Dep> dep) {
+        this.dep = dep;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    @Override
+    public String toString() {
+        return "Imp{" +
+                "username='" + username + '\'' +
+                ", no=" + no +
+                ", dep=" + dep +
+                '}';
+    }
+}

+ 23 - 0
day01/src/main/java/com/lovecoding/diarray/MyBeanPost.java

@@ -0,0 +1,23 @@
+package com.lovecoding.diarray;
+
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.config.BeanPostProcessor;
+
+public class MyBeanPost implements BeanPostProcessor {
+
+    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
+
+        System.out.println( "bean的后置处理器" );
+
+        return bean;
+    }
+
+
+    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
+
+        System.out.println( "bean的前置处理器" );
+
+        return bean;
+    }
+
+}

+ 23 - 0
day01/src/main/java/com/lovecoding/factory/MyFactoryBean.java

@@ -0,0 +1,23 @@
+package com.lovecoding.factory;
+
+import com.lovecoding.beans.User;
+import org.springframework.beans.factory.FactoryBean;
+
+public class MyFactoryBean implements FactoryBean {
+    @Override
+    public Object getObject() throws Exception {
+        User user = new User();
+        user.setUsername("秦始皇");
+        return user;
+    }
+
+    @Override
+    public Class<?> getObjectType() {
+        return null;
+    }
+
+    @Override
+    public boolean isSingleton() {
+        return FactoryBean.super.isSingleton();
+    }
+}

+ 13 - 0
day01/src/main/java/com/lovecoding/factory/MyFactoryBeanTest.java

@@ -0,0 +1,13 @@
+package com.lovecoding.factory;
+
+import com.lovecoding.beans.User;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class MyFactoryBeanTest {
+    public static void main(String[] args) {
+        ClassPathXmlApplicationContext context =
+                new ClassPathXmlApplicationContext("factoryBean.xml");
+        User myFactoryBean = context.getBean("myFactoryBean", User.class);
+        myFactoryBean.say();
+    }
+}

+ 44 - 0
day01/src/main/resources/array.xml

@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:context="http://www.springframework.org/schema/context"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+       http://www.springframework.org/schema/beans/spring-beans.xsd
+
+       http://www.springframework.org/schema/context
+       http://www.springframework.org/schema/context/spring-context.xsd">
+
+
+    <context:property-placeholder location="propers.propertes" />
+
+<!--    <bean id="imp" class="com.lovecoding.diarray.Imp">-->
+<!--        <property name="username" value="张三" />-->
+<!--        <property name="dep" >-->
+<!--            <array>-->
+<!--                <map>-->
+<!--                    <entry key="dep" value-ref="dep" />-->
+<!--                    <entry key="dep1" value-ref="dep1" />-->
+<!--                </map>-->
+<!--            </array>-->
+<!--        </property>-->
+<!--        <property name="no" >-->
+<!--            <list>-->
+<!--                <value>${user.no01}</value>-->
+<!--                <value>${user.no02}</value>-->
+<!--            </list>-->
+<!--        </property>-->
+<!--    </bean>-->
+
+<!--    <bean id="dep" class="com.lovecoding.diarray.Dep" scope="prototype" >-->
+<!--        <property name="title" value="开发组" />-->
+<!--    </bean>-->
+
+
+    <bean id="dep1" init-method="init" destroy-method="destroy" class="com.lovecoding.diarray.Dep" >
+        <property name="title" value="市场部" />
+    </bean>
+
+<bean id="MyBeanPost"  class="com.lovecoding.diarray.MyBeanPost" />
+
+
+</beans>

+ 16 - 0
day01/src/main/resources/auto.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+    <bean id="persion" class="com.lovecoding.beans.Person" autowire="byName" />
+
+    <bean id="user2" class="com.lovecoding.beans.User" >
+        <constructor-arg name="username" value="张三"></constructor-arg>
+    </bean>
+
+    <bean id="user" class="com.lovecoding.beans.User" >
+        <constructor-arg name="username" value="张三"></constructor-arg>
+    </bean>
+
+</beans>

+ 19 - 0
day01/src/main/resources/book.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+<!--    <bean id="book" class="com.lovecoding.di.Book" >-->
+<!--        <property name="title" value="Java 就该这样学" />-->
+<!--        <property name="author" >-->
+<!--            <value> 里斯 </value>-->
+<!--        </property>-->
+<!--    </bean>-->
+
+<!--  这种方式是 通过构造器 注入参数-->
+    <bean id="book" class="com.lovecoding.di.Book" >
+        <constructor-arg name="title" value="Mysql 从0 开始" />
+        <constructor-arg name="author" value="李四" />
+    </bean>
+
+</beans>

+ 8 - 0
day01/src/main/resources/factoryBean.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+    <bean id="myFactoryBean" class="com.lovecoding.factory.MyFactoryBean" />
+
+</beans>

+ 2 - 0
day01/src/main/resources/propers.propertes

@@ -0,0 +1,2 @@
+user.no01 = 778899
+user.no02 = 990011

+ 32 - 0
day01/src/main/resources/users.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+    <!-- 我们在这里创建对象是为了 让Spring框架接手对象的创建管理权限, IOC 又叫控制反转 -->
+    <bean id="persion" class="com.lovecoding.beans.Persion" >
+        <!-- DI 注入 -->
+<!--        <property name="user" ref="user"  />-->
+<!--连级引用 并赋值-->
+        <property name="user" ref="user" />
+        <property name="user.username" value="王五" ></property>
+<!--        <property name="user" >-->
+<!--            <bean id="user" class="com.lovecoding.beans.User" />-->
+<!--        </property>-->
+
+    </bean>
+
+    <bean id="user" class="com.lovecoding.beans.User" >
+        <constructor-arg name="username" value="张三"></constructor-arg>
+    </bean>
+
+
+    <bean id="user1" class="com.lovecoding.beans.User" >
+        <property name="username" value="张三" />
+    </bean>
+
+<!--    <bean id="user1" class="com.lovecoding.beans.User" >-->
+<!--        <property name="username" value="张三" />-->
+<!--    </bean>-->
+
+</beans>

+ 33 - 0
day02/pom.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>spring</artifactId>
+        <groupId>com.lovecoding.spring</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>day02</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-context</artifactId>
+            <version>5.3.22</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-beans</artifactId>
+            <version>5.3.22</version>
+        </dependency>
+    </dependencies>
+
+</project>

+ 49 - 0
day02/src/main/java/com/lovecoding/controller/LoginController.java

@@ -0,0 +1,49 @@
+package com.lovecoding.controller;
+
+
+import com.lovecoding.service.LoginService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Component( value = "loginController")
+public class LoginController {
+
+    //第一种方法
+    //使用属性注入  两行代码解决问题
+    //默认是按类型匹配 如果我们使用 属性注入代码最简介
+//    @Autowired
+//    private LoginService loginService;
+
+    //第二种方法
+    //SET方法添加注解 注入对象
+    //使用SET方法注入 我们需要五行代码 解决问题
+//    private LoginService loginService;
+//    @Autowired
+//    public void setLoginService( LoginService loginService) {
+//        this.loginService = loginService;
+//    }
+
+    //第三种注入方法
+    //我们需要 保留构造器, 并且使用注解 我们依然需要 五行代码
+    private LoginService loginService;
+    @Autowired
+    public LoginController(LoginService loginService) {
+        this.loginService = loginService;
+    }
+
+    public void login(){
+        loginService.login();
+    }
+
+    public static void main(String[] args) {
+        ClassPathXmlApplicationContext context =
+                new ClassPathXmlApplicationContext("anno.xml");
+        LoginController bean = context.getBean(LoginController.class);
+        //System.out.println( bean );
+        bean.login();
+
+    }
+}

+ 10 - 0
day02/src/main/java/com/lovecoding/dao/LoginDao.java

@@ -0,0 +1,10 @@
+package com.lovecoding.dao;
+
+import org.springframework.stereotype.Repository;
+
+@Repository
+public class LoginDao {
+    public void login() {
+        System.out.println( "用户登录成功!!!!" );
+    }
+}

+ 5 - 0
day02/src/main/java/com/lovecoding/service/LoginService.java

@@ -0,0 +1,5 @@
+package com.lovecoding.service;
+
+public interface LoginService {
+    void login();
+}

+ 26 - 0
day02/src/main/java/com/lovecoding/service/LoginServiceImpl.java

@@ -0,0 +1,26 @@
+package com.lovecoding.service;
+
+import com.lovecoding.dao.LoginDao;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class LoginServiceImpl implements LoginService {
+
+
+    LoginDao loginDao;
+
+    @Autowired
+    public LoginServiceImpl(LoginDao loginDao) {
+        this.loginDao = loginDao;
+    }
+
+    public void setLoginDao( LoginDao loginDao) {
+        this.loginDao = loginDao;
+    }
+
+    @Override
+    public void login() {
+        loginDao.login();
+    }
+}

+ 18 - 0
day02/src/main/resources/anno.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:context="http://www.springframework.org/schema/context"
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+
+">
+
+<context:component-scan base-package="com.lovecoding">
+</context:component-scan>
+
+<!--    <bean id="loginController" class="com.lovecoding.controller.LoginController" autowire="byType" />-->
+<!--    <bean id="loginService" class="com.lovecoding.service.LoginServiceImpl" autowire="byType" />-->
+<!--    <bean id="loginDao" class="com.lovecoding.dao.LoginDao" />-->
+
+</beans>

+ 35 - 0
demo01/pom.xml

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>spring</artifactId>
+        <groupId>com.lovecoding.spring</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>demo01</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-context</artifactId>
+            <version>5.3.22</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-beans</artifactId>
+            <version>5.3.22</version>
+        </dependency>
+
+    </dependencies>
+
+</project>

+ 25 - 0
demo01/src/main/java/com/lovecoding/controller/LoginController.java

@@ -0,0 +1,25 @@
+package com.lovecoding.controller;
+
+import com.lovecoding.service.LoginService;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.stereotype.Component;
+
+
+public class LoginController {
+    private LoginService loginService;
+
+    public void setLoginService(LoginService loginService) {
+        this.loginService = loginService;
+    }
+
+    public void login(){
+        loginService.login();
+    }
+
+    public static void main(String[] args) {
+        ClassPathXmlApplicationContext context =
+                new ClassPathXmlApplicationContext("login.xml");
+        LoginController bean = context.getBean(LoginController.class);
+        bean.login();
+    }
+}

+ 7 - 0
demo01/src/main/java/com/lovecoding/dao/LoginDao.java

@@ -0,0 +1,7 @@
+package com.lovecoding.dao;
+
+public class LoginDao {
+    public void login() {
+        System.out.println( "用户登录成功!!!!" );
+    }
+}

+ 7 - 0
demo01/src/main/java/com/lovecoding/service/LoginService.java

@@ -0,0 +1,7 @@
+package com.lovecoding.service;
+
+import com.lovecoding.dao.LoginDao;
+
+public interface LoginService {
+    void login();
+}

+ 17 - 0
demo01/src/main/java/com/lovecoding/service/LoginServiceImpl.java

@@ -0,0 +1,17 @@
+package com.lovecoding.service;
+
+import com.lovecoding.dao.LoginDao;
+
+public class LoginServiceImpl implements LoginService {
+
+    LoginDao loginDao;
+
+    public void setLoginDao(LoginDao loginDao) {
+        this.loginDao = loginDao;
+    }
+
+    @Override
+    public void login() {
+        loginDao.login();
+    }
+}

+ 10 - 0
demo01/src/main/resources/login.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+    <bean id="loginController" class="com.LoginController" autowire="byType" />
+    <bean id="loginService" class="com.LoginServiceImpl" autowire="byType" />
+    <bean id="loginDao" class="com.LoginDao" />
+
+</beans>

+ 22 - 0
pom.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>com.lovecoding.spring</groupId>
+    <artifactId>spring</artifactId>
+    <packaging>pom</packaging>
+    <version>1.0-SNAPSHOT</version>
+    <modules>
+        <module>day01</module>
+        <module>demo01</module>
+        <module>day02</module>
+    </modules>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+</project>