2013年11月9日 星期六

java-ioc Inversion of Control (Spring)




SpringClient.java
package com.sanqing.client;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationCeontext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.sanquing.service.HelloService;
public class SpringClient {
/*
Resource resource=new FileSystemResource("src\\applicationContext.sml");
BeanFactory factory = new XmlBeanFactory(resource);
*/
/*
ClassPathResource resource = new ClassPathResource("applicationCeontext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
*/
ApplicationContest context=new ClassPathXmlApplicationContext("applicationCeontext.xml")
BeanFactory factory=context;
HelloService helloService=(HelloService)factory.getBean("hello");
String name="Tom";
System.out.println(helloService.SayHello(name));
}

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
\service\Student.java //it is Setter
package com.sanqing.service;
public class Student
{
      String name;
       int age;
public void setName(String name){
       this.name=name;}
public void setAge(ing age){
      this.age=age;}
public String introduction(){
      return "My Name : "+name",Age" + age;}
}

\src\applicationContext.xml //it is Bean 
<bean id="student" class="com.sanquing.service.Student">
<property name="name">
<value>Tom</value>
</property>
<property name="age">
<value>21</value>
</property>
</bean>

\client\SetterClient.java  // it is instance
package com.sanqing.client;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.sanquing.service.Student;
public class SpringClient {
public static void main(String[] args){
    BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml")
    Student student=(Student)factory.getBean("student");
    System.out.println(student.introduction());
}
}

// result My Name Tom, Age 21

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

\service\Teacher.java //it is Setter
package com.sanqing.service;
public class Teacher{
 String name;
  int age;
 public Teacher(){
}
public Teacher(String name,int age){
    this.name=name;
    this.age=age;
}
public String introduction(){
      return "My Name : "+name",Age" + age;
}
}

\src\applicationContext.xml //it is Bean 
<bean id="teacher" class="com.sanquing.service.Teacher">
<constructor-arg index="0">
    <value>Jerry</value>
</constructor-arg>
<constructor-arg index="1">
    <value>32</value>
</constructor-arg>
</bean>
<!-- or
<bean id="teacher" class="com.sanqing.service.Teacher">
<constructor-arg type="java.lang.String">
<value>Jeffy</value>
</constructor-arg>
<constructor-arg type="int">
<value>32</value>
</constructor-arg>
</bean>
-->

\client\ConstructorClient.java  // it is instance
package com.sanqing.client;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.sanquing.service.Teacher;
public class ConstructorClient {
public static void main(String[] args){
    BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml")
    Teacher teacher=(Teacher)factory.getBean("teacher");
    System.out.println(teacher.introduction());
}
}

// result My Name Jerry, Age 32


-------------------------------- ref bean ------------------------------------------------------

\dao\UserDAOImpl.java
package com.sanqing.dao;
    public class UserDAOImpl implements UserDAO{
    public boolean findUser(String name,String password){
if("Tom",equals(name) && "456123".equals(password)){
    retturn true
} else {
    return false;
}
}
}

\service\UserServiceImpl.java
package com.sanqing.service;
import.com.sanqing.dao.UserDAO;
public class UserServiceImpl implements UserService{
private UserDAO userDAO;
public void setUserDAO(UserDAO userDAO){
this.userDAO=userDAO;}
public boolean Login(String name,String password{
boolean b=userDAO.findUser(name,password);
}
}

\src\applicationContext.xml //it is ref Bean 
<bean id="UserDAOImpl" class="com.sanqing.dao.UserDAOImpl">
</bean>
<bean id="userService" class="com.sqnqing.service.UserServiceImpl">
<property name="userDAO">
    <ref bean="UserDAOImpl">
</property>
</bean>

or

\src\applicationContext.xml //
<bean id="userService" class="com.sqnqing.service.UserServiceImpl">
<property name="userDAO">
    <bean class="com.sanqing.dao.UserDAOImpl"/>
 </property>
</bean>



\client\OtherBeanClient.java  // it is instance

package com.sanqing.client;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.sanquing.service.UserService;
public class OtherBeanClient{
public static void main(String []args){
     Bean Factory factory=new ClassPathXmlApplicationContext("applicationContext.xml");
     UserService userService=(UserService)factory.getBean("userService")
    String name="Tom";
    String password="456123"
    System.out.println(name+"you can : "+ userService.Login(name,password));
}
}

// result Tom you can true;









沒有留言:

張貼留言