You can do what you want, and should do whatever seems sensible for your needs. What I'm getting at is that T5 IoC can transparently handle creating services with constructor arguments, if those arguments are of types known to the container. String won't work, and I honestly don't know what would happen if you tried to pass one in, but it won't give you what you need. I think the container's object resolution relies on mapping a type to a single known instance, but I could be way off here.

I think what you need is to build your service in a builder and manually pass it arguments. Of course if these object is based on the current request, that's a different story. Be sure to read:

http://tapestry.apache.org/tapestry5/tapestry-ioc/module.html

Sincerely,
chris

lyifan wrote:
Hi Chris,

Do you mean that any constructor parameters can be replaced by an object
that provides those parameters?
for an instance, if address, port, ssl are saved in a config file, I have to
pass a ConfigFile object as the parameter of the HttpTransport constructor.
Am I right?

thank you


Chris Lewis-5 wrote:
I'm not sure I understand the constructor parameters. Do you mean they come from some other object (HttpRequest)? If so, why not just take HttpRequest as a constructor argument? If you do that then you can auto bind this service and IoC will know how to create it. If you insist on the parameters currently listed, then you'll need to have a service builder method, and inject HttpRequest as an argument into that method.

lyifan wrote:
I want to implement a service:

public interface Transport {
        public void send();
}

public class HttpTransport implement Transport {
        private String _address;
        private int     _port;
        private boolean _ssl;
        public HttpTransport (String address, int port, boolean ssl) {
                 _address = address;
                 _port = port;
                 _ssl = ssl;
        }

        public void send) {
                // ......
        }
}

The parameter of the constructor is from http request. How can I build
this
service? I know I can use setters, but I just wanna know how to build a
service using constructor.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





Reply via email to